[FFmpeg-trac] #7337(avformat:closed): FFmpeg not recognizing WebVTT subtitle stream from HLS playlist
FFmpeg
trac at avcodec.org
Mon May 26 00:17:57 EEST 2025
#7337: FFmpeg not recognizing WebVTT subtitle stream from HLS playlist
-------------------------------------+-------------------------------------
Reporter: newsfanatic | Owner: (none)
Type: enhancement | Status: closed
Priority: wish | Component: avformat
Version: git-master | Resolution:
| needs_more_info
Keywords: hls webvtt | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by malvinas2):
The problem still exists:
The live stream of Spanish national public broadcaster RTVE can be watched
using one of the following directions (both are probably geo-blocked):
{{{
https://ztnr.rtve.es/ztnr/1688885.m3u8
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr.m3u8
}}}
When watching them directly within VLC Player, several subtitles are
available (spanish, catalan etc.).
VLC Player tells me, that the subtitles are using the ''webvtt'' format.
According to [https://trac.ffmpeg.org/wiki/ExtractSubtitles] ffmpeg should
be able to encode and decode this format. But using options like ....
''-scodec webvtt'' or ''-scodec mov_text'' or ''-scodec dvbsub'' don't
show any change.
Using ffmpeg, == version 7.1.1 == results in the following error message:
{{{
C:\Users\malvinas2\Documents>c:\ffmpeg\bin\ffmpeg -i
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr.m3u8 -c copy
-copy_unknown meintestvideo3.mkv > error.txt
ffmpeg version 7.1.1-essentials_build-www.gyan.dev Copyright (c) 2000-2025
the FFmpeg developers
built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-
w32threads --disable-autodetect --enable-fontconfig --enable-iconv
--enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
--enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-
avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265
--enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx
--enable-mediafoundation --enable-libass --enable-libfreetype --enable-
libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf
--enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-
dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl
--enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-
libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-
libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-
amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-
librubberband
libavutil 59. 39.100 / 59. 39.100
libavcodec 61. 19.101 / 61. 19.101
libavformat 61. 7.100 / 61. 7.100
libavdevice 61. 3.100 / 61. 3.100
libavfilter 10. 4.100 / 10. 4.100
libswscale 8. 3.100 / 8. 3.100
libswresample 5. 3.100 / 5. 3.100
libpostproc 58. 3.100 / 58. 3.100
[hls @ 000001dbf602f340] Skip ('## Created with Golumi Video Platform')
[hls @ 000001dbf602f340] Can't support the subtitle(uri:
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_es.m3u8)
[hls @ 000001dbf602f340] Can't support the subtitle(uri:
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_en.m3u8)
[hls @ 000001dbf602f340] Can't support the subtitle(uri:
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_gl.m3u8)
[hls @ 000001dbf602f340] Can't support the subtitle(uri:
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_ca.m3u8)
[hls @ 000001dbf602f340] Can't support the subtitle(uri:
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_eu.m3u8)
[hls @ 000001dbf602f340] Opening
'https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_a_155.m3u8' for
reading
[hls @ 000001dbf602f340] Skip ('## Created with Golumi Video Platform')
[hls @ 000001dbf602f340] Skip ('#EXT-X-VERSION:3')
[hls @ 000001dbf602f340] Skip ('#EXT-X-ALLOW-CACHE:YES')
[https @ 000001dbf6629e40] Opening
'https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_a_156.m3u8' for
reading
[hls @ 000001dbf602f340] Skip ('## Created with Golumi Video Platform')
[hls @ 000001dbf602f340] Skip ('#EXT-X-VERSION:3')
[hls @ 000001dbf602f340] Skip ('#EXT-X-ALLOW-CACHE:YES')
[https @ 000001dbf6629e40] Opening
'https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_720.m3u8' for
reading
[hls @ 000001dbf602f340] Skip ('## Created with Golumi Video Platform')
[hls @ 000001dbf602f340] Skip ('#EXT-X-VERSION:3')
[hls @ 000001dbf602f340] Skip ('#EXT-X-ALLOW-CACHE:YES')
[https @ 000001dbf6629e40] Opening
'https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_576.m3u8' for
reading
[hls @ 000001dbf602f340] Skip ('## Created with Golumi Video Platform')
[hls @ 000001dbf602f340] Skip ('#EXT-X-VERSION:3')
[hls @ 000001dbf602f340] Skip ('#EXT-X-ALLOW-CACHE:YES')
[https @ 000001dbf6629e40] Opening
'https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_360.m3u8' for
reading
[hls @ 000001dbf602f340] Skip ('## Created with Golumi Video Platform')
[hls @ 000001dbf602f340] Skip ('#EXT-X-VERSION:3')
[hls @ 000001dbf602f340] Skip ('#EXT-X-ALLOW-CACHE:YES')
[https @ 000001dbf6629e40] Opening
'https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_180.m3u8' for
reading
[hls @ 000001dbf602f340] Skip ('## Created with Golumi Video Platform')
[hls @ 000001dbf602f340] Skip ('#EXT-X-VERSION:3')
[hls @ 000001dbf602f340] Skip ('#EXT-X-ALLOW-CACHE:YES')
[hls @ 000001dbf602f340] Opening
'https://rtvelivestream.rtve.es/rtvesec/la2/GL1/155_a_2_2025_05_25_23_11_51_12378.ts'
for reading
}}}
Content of the m3u file is the following:
{{{
#EXTM3U
## Created with Golumi Video Platform
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-
ID="audios",NAME="Castellano",LANGUAGE="spa",CHANNELS="2",DEFAULT=YES,AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-
ID="audios",NAME="original",LANGUAGE="qaa",CHANNELS="2",DEFAULT=NO,URI="https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_a_155.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audios",NAME="Audio
Descripcion",LANGUAGE="ads",CHANNELS="2",DEFAULT=NO,AUTOSELECT=YES,CHARACTERISTICS="public.accessibility
.describes-
video",URI="https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_a_156.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
ID="subtitulos",NAME="Español",LANGUAGE="es",DEFAULT=NO,FORCED=NO,URI="https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_es.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
ID="subtitulos",NAME="Inglés",LANGUAGE="en",DEFAULT=NO,FORCED=NO,URI="https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
ID="subtitulos",NAME="Gallego",LANGUAGE="gl",DEFAULT=NO,FORCED=NO,URI="https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_gl.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
ID="subtitulos",NAME="Catalán",LANGUAGE="ca",DEFAULT=NO,FORCED=NO,URI="https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_ca.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-
ID="subtitulos",NAME="Euskera",LANGUAGE="eu",DEFAULT=NO,FORCED=NO,URI="https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_eu.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3012608,AVERAGE-
BANDWIDTH=3012608,RESOLUTION=1280x720,CODECS="avc1.640029,mp4a.40.2",AUDIO="audios",SUBTITLES="subtitulos"
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_720.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025472,AVERAGE-
BANDWIDTH=2025472,RESOLUTION=1024x576,CODECS="avc1.640029,mp4a.40.2",AUDIO="audios",SUBTITLES="subtitulos"
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_576.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1155072,AVERAGE-
BANDWIDTH=1155072,RESOLUTION=640x360,CODECS="avc1.640029,mp4a.40.2",AUDIO="audios",SUBTITLES="subtitulos"
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_360.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=643072,AVERAGE-
BANDWIDTH=643072,RESOLUTION=320x180,CODECS="avc1.640029,mp4a.40.2",AUDIO="audios",SUBTITLES="subtitulos"
https://rtvelivestream.rtve.es/rtvesec/la2/la2_main_dvr_180.m3u8
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7337#comment:6>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list