#4048: segment: Handle WebVTT as per HLS spec -------------------------------------+------------------------------------ Reporter: 11rcombs | Owner: Type: enhancement | Status: new Priority: normal | Component: avformat Version: git-master | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------ Changes (by 11rcombs): * keywords: hls webvtt => Comment: It's not so much a bug as the lack of support for a newly-specified behavior. But let's use this {{{test.vtt}}} file as an example: {{{ 00:00.000 --> 00:07.000 Test line 1, spans segments 0 and 1 00:07.000 --> 00:08.000 Test line 2, contained in segment 1 00:16.000 --> 00:18.000 Test line 3, should be in segment 3 after an empty segment 2 00:18.000 --> 00:40.000 Test line 4, should span several segments }}} Let's run {{{ffmpeg -i in.vtt -f segment -segment_time 5 -segment_format webvtt -scodec copy out-%05d.vtt}}}. We get: out-00000.vtt {{{ WEBVTT 00:00.000 --> 00:07.000 Test line 1, spans segments 0 and 1 }}} out-00001.vtt {{{ WEBVTT 00:07.000 --> 00:08.000 Test line 2, contained in segment 1 }}} out-00002.vtt {{{ WEBVTT 00:16.000 --> 00:18.000 Test line 3, should be in segment 3 after an empty segment 2 }}} out-00003.vtt {{{ WEBVTT 00:18.000 --> 00:40.000 Test line 4, should span several segments }}} The correct output for HLS would be: out-00000.vtt {{{ WEBVTT 00:00.000 --> 00:07.000 Test line 1, spans segments 0 and 1 }}} out-00001.vtt {{{ WEBVTT 00:00.000 --> 00:07.000 Test line 1, spans segments 0 and 1 00:07.000 --> 00:08.000 Test line 2, contained in segment 1 }}} out-00002.vtt {{{ WEBVTT }}} out-00003.vtt {{{ WEBVTT 00:18.000 --> 00:40.000 Test line 4, should span several segments }}} out-00004.vtt {{{ WEBVTT 00:18.000 --> 00:40.000 Test line 4, should span several segments }}} <etc…, with more duplicates up to out-00007.vtt> The two behaviors that need adding (writing empty segments, and duplicating packets spanning multiple segments) seem like they could reasonably be separate options. The writing-empty-segments behavior seems sensible for generic subtitle segmenting (in order to have predictable segment durations), whereas duplicating packets is pretty WebVTT-in-HLS- specific. -- Ticket URL: <https://trac.ffmpeg.org/ticket/4048#comment:3> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker