[FFmpeg-user] WebVTT demuxer ignores processing every 1st line of each follow-up HLS webvtt-segment

Reino Wijnsma rwijnsma at xs4all.nl
Mon Feb 17 01:26:29 EET 2020


Hello ffmpeg-user,

While reading this <https://github.com/ytdl-org/youtube-dl/issues/18796#issuecomment-583782299> Github-issue-comment and testing the mentioned HLS-webvtt-url I first of all noticed that, unlike the user claims, ffmpeg does demux all the webvtt-segments. Why this is not happening for this user is most likely because of the old ffmpeg-binary he/she uses.
Secondly, what does happen is that ffmpeg doesn't remove the 2nd line of each webvtt-segment (except for the 1st segment).

The first webvtt-segment, 'https://ga.video.cdn.pbs.org/videos/frontline/8f769cee-b6d6-437d-80b5-74252ed7642d/2000150564/hd-16x9-mezzanine-1080p/00003717fes-captions0.vtt':

WEBVTT
X-TIMESTAMP-MAP=MPEGTS:187507, LOCAL:00:00:00.000

00:13.400 --> 00:17.400 position:10%,start line:85% size:80%
♪ ♪

00:17.400 --> 00:20.080 position:10%,start line:85% size:80%
WAAD (speaking Arabic):

[...]

03:11.320 --> 03:13.400 position:10%,start line:85% size:80%
(explosion roars)


With [ffmpeg -i https://ga.video.cdn.pbs.org/videos/frontline/8f769cee-b6d6-437d-80b5-74252ed7642d/2000150564/hd-16x9-mezzanine-1080p/00003717fes-captions0.vtt 00003717fes-captions0.vtt] ffmpeg converts this to...

WEBVTT

00:13.400 --> 00:17.400
♪ ♪

00:17.400 --> 00:20.080
WAAD (speaking Arabic):

[...]

03:11.320 --> 03:13.400
(explosion roars)


...which is expected.
Converting the entire stream with [ffmpeg -i https://ga.video.cdn.pbs.org/videos/frontline/8f769cee-b6d6-437d-80b5-74252ed7642d/2000150564/hd-16x9-mezzanine-1080p/00003717fes-captions.m3u8 00003717fes-captions.vtt] ffmpeg puts out...

WEBVTT

00:13.400 --> 00:17.400
♪ ♪

00:17.400 --> 00:20.080
WAAD (speaking Arabic):

[...]

03:11.320 --> 03:13.400
(explosion roars)
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:187507, LOCAL:00:00:00.000

03:11.320 --> 03:13.400
(explosion roars)

[...]

05:56.440 --> 05:59.320
WAAD:
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:187507, LOCAL:00:00:00.000

06:14.720 --> 06:16.800
(numerous explosions booming)

[...]

09:09.400 --> 09:12.960
MAN:
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:187507, LOCAL:00:00:00.000

09:23.400 --> 09:25.440
SOLDIER:

[...]


So the very first "WEBVTT\nX-TIMESTAMP-MAP=MPEGTS:187507, LOCAL:00:00:00.000" does become "WEBVTT" and all the following instances (at the beginning of each webvtt-segment) should've been removed, but are simply ignored/copied.
Also allowing duplicate entries ("03:11.320 --> 03:13.400\n(explosion roars)") is weird to say the least.

FFmpeg used:

ffmpeg version N-96249-g81172b5-Reino Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.2.0 (GCC)
  configuration: --arch=x86 --target-os=mingw32 --cross-prefix=/cygdrive/m/ffmpeg-windows-build-helpers-master/ffmpeg_local_builds/sandbox/cross_compilers/mingw-w64-i686/bin/i686-w64-mingw32- --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=Reino --enable-gray --enable-version3 --disable-debug --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-w32threads --enable-avisynth --enable-frei0r --enable-filter=frei0r --enable-gmp --enable-gpl --enable-libaom --enable-libass --enable-libfdk-aac --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libmp3lame --enable-libopenmpt --enable-libopus --enable-libsoxr --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-mbedtls --extra-cflags='-march=pentium3' --extra-cflags='-mtune=athlon-xp' --extra-cflags=-O2 --extra-cflags='-mfpmath=sse'
--extra-cflags=-msse --enable-static --disable-shared --prefix=/cygdrive/m/ffmpeg-windows-build-helpers-master/ffmpeg_local_builds/sandbox/cross_compilers/mingw-w64-i686/i686-w64-mingw32
  libavutil      56. 38.100 / 56. 38.100
  libavcodec     58. 65.102 / 58. 65.102
  libavformat    58. 35.101 / 58. 35.101
  libavdevice    58.  9.102 / 58.  9.102
  libavfilter     7. 70.101 /  7. 70.101
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100

-- Reino


More information about the ffmpeg-user mailing list