Ffmpeg mpeg-dash demuxing support

My ott iptv provider started using mpeg-dash when streaming but ffmpeg in OSMC can’t demuxing it. Is it possible to compile a new ffmpeg with DASH support? something like:
ffmpeg-X.X.X$ ./configure --enable-demuxer=dash --enable-libxml2
ffmpeg-X.X.X$ make
Thanx.

You could try it. I don’t have access to a stream to test.

Tkank you Sam. Can you please advise me which packages I need to install in osmc to compile the new ffmpeg?

You would need to re-build Kodi. At this time of writing we use static ffmpeg.

Now i use ffmpeg in tvheadend for the input stream as pipe:/// command

I see. We use Debian’s ffmpeg for that. You would have to build from source.

OK. I assume gcc is not in a standard osmc installation. Which packages I need to install into OSMC for compilation from the source code? Thank you.

sudo apt-get install build-essential

@fzinken Thank You. I will try.

I didn’t do it…
I tried ffmpeg-4.3.1 but ‘make’ ended with error:

CC libavfilter/vf_curves.o
In file included from ./libavutil/bswap.h:38:0,
from ./libavutil/intreadwrite.h:25,
from libavfilter/vf_curves.c:25:
libavfilter/vf_curves.c: In function ‘parse_psfile’:
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
asm(“rev16 %w0, %w0” : “+r”(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
asm(“rev16 %w0, %w0” : “+r”(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
asm(“rev16 %w0, %w0” : “+r”(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
asm(“rev16 %w0, %w0” : “+r”(x));
^~~~~~~
./libavutil/aarch64/bswap.h:31:5: error: invalid ‘asm’: invalid operand for code ‘w’
ffbuild/common.mak:59: recipe for target ‘libavfilter/vf_curves.o’ failed
make: *** [libavfilter/vf_curves.o] Error 1

I give it up I can’t do it… :frowning_face:

Indeed, it seems to be quite complicated.

Here’s an up-to-date article that might help. Compiling FFmpeg on the Raspberry Pi - Pi My Life Up

mpeg-dash support is available with inputstream.adaptive. GitHub - xbmc/inputstream.adaptive: kodi inputstream addon for several manifest types.
I guess you just need to get whatever addon you are using for your IPTV to talk to that.

1 Like

I don’t know how to use inputstream.adaptive in tvheadend mux definition

I don’t think you can. It’s intended to work with Kodi add-ons like iPlayer. If you can’t find an add-on that works with your IPTV provider then I’m stumped.

The problem you are trying to solve (adding mpeg-dash streams to tvheadend) is a problem that needs to be solved on the tvheadend side (by the tvheadend developers). 4.3 has not solved mpeg-dash yet. I’ve tried all sorts of ffmpeg pipes, and streamlink, and tvheadend just can’t deal with the results from those types of streams. So tvheadend wont work for you at this point. (I’m not sure if any of the other DVRs like Myth or VDR handle it better)

IPTV Merge IPTV Merge combines multiple m3u and epgs for IPTV Simple client, and comes with a proxy to make all the streams go though inputstream.adaptive. (they’re kodi plugin links, so tvheadend could not call them). I did notice I can now pause and resume streams with it (that’s something new). It’s not a DVR, but it may at least help you get your channels into the EPG. You can mix tvheadend for your OTA channels (and any non mpeg-dash streams) side by side with iptv-simple (pulling from the list iptv-merge generates), and they both can sit comfortably together in the same guide.

2 Likes

@randallspicher this is exactly what
I needed. Thank You very much!