[FFmpeg-user] Reduce mux overhead of HLS stream creation

Christian Ebert blacktrash at gmx.net
Mon Feb 16 14:27:03 CET 2015

* Claudiu Rad-Lohanel on Monday, February 16, 2015 at 12:31:58 +0200
> On 2/16/2015 10:46 AM, Moritz Barsnick wrote:
>> For one, we might identify that your problem has been fixed already.
>> Here's a (fixed) ticket concerning a similar matter:
>> https://trac.ffmpeg.org/ticket/2857
> No, that didn't fix what Wesley reports.
> I am watching the subject for a quite long time, seen also when that
> ticket was closed. I compiled, tested afterwards, the HLS segmenting
> overhead seems the same. I've compiled and tested many times since,
> the problem is the same.
> Maybe actually what we report is a different problem than #2857 with
> similar effect so I didn't comment on it without proof.
> I wanted to report this but never had the time to gather all the
> samples and create a nice report of it. Maybe now I'll be more
> motivated if Wesley doesn't do it before me.
> Bottom line: Apple's segmenter introduces low overhead of only a few
> precent at low bitrates like 150-200kbit, while ffmpeg may reach
> 15-20% no matter what mpegts path you choose. And this is a problem
> not only because of such high waste but also as it yields Apple
> validation warnings for the HLS stream generated with ffmpeg.
> Also the mpegts output is the same for ffmpeg no matter if you
> generate .ts directly or use ssegment or whatever, which would make
> sense as from what I figured from the source, the muxer used is the
> same? Or maybe here I am wrong..
> And to also clarify something: ffmpeg's overhead is ALWAYS bigger than
> Apple's mediafilesegmenter, no matter the bitrate. But I assume it
> tends to be more constant (or it grows slower with bitrate), thus, you
> don't see such high percentages with higher bitrates. But if you
> segment a 1mbit 1GB video with ffmpeg vs. Apple's segmenter, you'll
> see tens of MB of difference between them.
> It's clearly a general efficiency problem in ffmpeg in HLS case, I
> assume that's because Apple squeezed everything it could from mpegts
> while ffmpeg uses the generic mpegts muxer which must create valid and
> compatible streams for all kinds of devices.

Don't have blind faith in Apple's segmenter though. It seems to
overoptimize and may get the duration wrong (and actually quite


\black\trash movie           _COWBOY  CANOE  COMA_
            Ein deutscher Western/A German Western

--->> http://www.blacktrash.org/underdogma/ccc.php

More information about the ffmpeg-user mailing list