Opened 10 years ago
Last modified 14 months ago
#5641 open defect
Support WebVTT according to MKV specs
| Reported by: | RiCON | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avformat |
| Version: | git-master | Keywords: | webvtt mkv |
| Cc: | ale5000@gmail.com, MasterQuestionable | Blocked By: | |
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
FFmpeg supports the D_WEBVTT/SUBTITLES flavor following WebM specs (http://www.webmproject.org/docs/container/), but not the recent S_TEXT/WEBVTT flavor added to Matroska spec (https://matroska.org/technical/specs/codecid/index.html), likely close to it being added to mkvtoolnix in https://github.com/mbunkus/mkvtoolnix/commit/c0c8ea01 .
It should probably also be changed to mux WebVTT tracks as S_TEXT/WEBVTT, at least to Matroska so mkvtoolnix recognizes the track as valid subtitles.
ffmpeg -i cut-vtt.mkv
ffmpeg version N-80317-gff53b66-g9da27fb+1 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (Rev1, Built by MSYS2 project)
configuration: --enable-libx264 --enable-libvpx --enable-libopus --disable-postproc --disable-doc --disable-demuxer=asf --disable-ffplay --enable-gpl --disable-debug
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 46.100 / 57. 46.100
libavformat 57. 38.100 / 57. 38.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 46.101 / 6. 46.101
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
[matroska,webm @ 000000038f2d1c60] Unknown/unsupported AVCodecID S_TEXT/WEBVTT.
[matroska,webm @ 000000038f2d1c60] Could not find codec parameters for stream 3 (Subtitle: none): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from 'cut-vtt.mkv':
Metadata:
encoder : libebml v1.3.3 + libmatroska v1.4.4
creation_time : 2016-06-14 12:56:53
Duration: 00:00:11.28, start: 0.000000, bitrate: 352 kb/s
Stream #0:0: Video: vp9 (Profile 2), yuv420p10le(tv), 1280x720, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
Metadata:
BPS : 291322
BPS-eng : 291322
DURATION : 00:00:09.760000000
DURATION-eng : 00:00:09.760000000
NUMBER_OF_FRAMES: 234
NUMBER_OF_FRAMES-eng: 234
NUMBER_OF_BYTES : 355414
NUMBER_OF_BYTES-eng: 355414
_STATISTICS_WRITING_APP: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_APP-eng: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_DATE_UTC: 2016-06-14 12:56:53
_STATISTICS_WRITING_DATE_UTC-eng: 2016-06-14 12:56:53
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default) (forced)
Metadata:
BPS : 107013
BPS-eng : 107013
DURATION : 00:00:09.758000000
DURATION-eng : 00:00:09.758000000
NUMBER_OF_FRAMES: 488
NUMBER_OF_FRAMES-eng: 488
NUMBER_OF_BYTES : 130530
NUMBER_OF_BYTES-eng: 130530
_STATISTICS_WRITING_APP: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_APP-eng: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_DATE_UTC: 2016-06-14 12:56:53
_STATISTICS_WRITING_DATE_UTC-eng: 2016-06-14 12:56:53
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:2(eng): Subtitle: webvtt
Metadata:
title : FFmpeg
BPS : 163
BPS-eng : 163
DURATION : 00:00:10.300000000
DURATION-eng : 00:00:10.300000000
NUMBER_OF_FRAMES: 5
NUMBER_OF_FRAMES-eng: 5
NUMBER_OF_BYTES : 211
NUMBER_OF_BYTES-eng: 211
_STATISTICS_WRITING_APP: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_APP-eng: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_DATE_UTC: 2016-06-14 12:56:53
_STATISTICS_WRITING_DATE_UTC-eng: 2016-06-14 12:56:53
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:3: Subtitle: none (default)
Metadata:
title : mkvmerge
BPS : 0
BPS-eng : 0
DURATION : 00:00:00.000000000
DURATION-eng : 00:00:00.000000000
NUMBER_OF_FRAMES: 0
NUMBER_OF_FRAMES-eng: 0
NUMBER_OF_BYTES : 0
NUMBER_OF_BYTES-eng: 0
_STATISTICS_WRITING_APP: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_APP-eng: mkvmerge v9.2.0 ('Photograph') 64bit
_STATISTICS_WRITING_DATE_UTC: 2016-06-14 12:56:53
_STATISTICS_WRITING_DATE_UTC-eng: 2016-06-14 12:56:53
_STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
At least one output file must be specified
Attachments (1)
Change History (8)
by , 10 years ago
| Attachment: | cut-vtt.mkv added |
|---|
comment:1 by , 10 years ago
| Keywords: | mkv added; matroska removed |
|---|---|
| Reproduced by developer: | set |
| Status: | new → open |
comment:2 by , 6 years ago
I raised this VLC bug https://trac.ffmpeg.org/ticket/5641 about vlc not displaying webvtt subtitles correctly. It turned out to be youtube-dl not correctly embedding the subtitles (https://github.com/ytdl-org/youtube-dl/issues/16338) due to ffmpeg using the wrong ID for webvtt subtitles in MKV files.
comment:3 by , 5 years ago
comment:4 by , 5 years ago
| Cc: | added |
|---|
follow-up: 6 comment:5 by , 5 years ago
There are 2 commits to support WebVTT parsing, could they be ported back to main ffmpeg?
They are here:
https://git.1f0.de/gitweb/?p=ffmpeg.git;a=commit;h=66185f50f8297454c599186067ae2c2b229870a9;js=1
https://git.1f0.de/gitweb/?p=ffmpeg.git;a=commit;h=803713d8ba6da8d4d0c4de23cbe1ab33e3864f60;js=1



Matroska file with both WebVTT flavors. FFmpeg only recognizes one of them.