[FFmpeg-devel] [PATCH] lavf/mux: bypass interleave delay early when waiting on subtitle streams

Jan Ekström jeebjp at gmail.com
Tue Apr 21 21:34:17 EEST 2020


On Wed, Mar 11, 2020 at 11:36 PM rcombs <rcombs at rcombs.me> wrote:
>
> This avoids long delays when converting live streams that have sparse subtitles
> ---
>  libavformat/avformat.h      |  9 +++++++++
>  libavformat/mux.c           | 25 +++++++++++++++++++++----
>  libavformat/options_table.h |  1 +
>  libavformat/version.h       |  2 +-
>  4 files changed, 32 insertions(+), 5 deletions(-)

For the record, was debugging a case of rather bursty muxing of a live
stream from a live TV source to fragmented mp4 with keyframe-based
fragmentation and subtitles in the mux.

For easier debugging I utilized fix_sub_duration with ffmpeg.c, static
2 second GOPs, and added  av_gettime_relative logging calls at the end
of mov_flush_fragment. It showed things like 2-3 2 second fragments
happening in very quick succession, and then a pause for a while.
Making the process rather jittery.

Haven't yet really been able to look at this patch code wise, but
clearly with this patch the output fragmentation becomes much, much
more stable (nice ~2 second timings all way through while I was
running my tests).

Best regards,
Jan


More information about the ffmpeg-devel mailing list