Opened 4 months ago

Closed 4 months ago

#6594 closed defect (invalid)

VLC not displaying h264 closed captions

Reported by: MayeulC Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
I have a video file in the mkv format, that contains an mp4 video track, in which there are some closed captions:

Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)

The closed captions are displayed fine on mpv, but not on vlc (or any other player I tried, for that matter; as they are probably based on ffmpeg).

I have also been unable to extract the subtitle track (though 'ffmpeg -f lavfi -i "movie=input.mp4[out0+subcc]" -map s output.srt' looked promising, it only produces a 0B srt file).

How to reproduce:

Load the video in vlc, and try to turn on the subtitles track: there is none.
Do the same in mpv; subtitles are displayed

I wanted to upload the sample on upload.ffmpeg.org, but it seems to be down, so there it is (1.7MB): https://mega.nz/#!tBZnzAhY!K_PNpxDaRFYXS7firdWw0vAn4GrW8gpzX7-e-5ZlBFY

(The extract might contain some minor spoiler for game of thrones, I don't know as I am not personally interested in the series; the caption is "I wish you all the happiness in the world")

List of what was tried:

Players/tools I tried:
Android: MX Player, Mobo Player, VLC for android -- failure | mpv-android: success
Tools: mkvinfo, HandBrake?, MKVToolNix don't display any subtitle track (I stress that the track is embedded in the h264 video stream).
Linux: VLC, Dragon Player, MPlayer, Kodi --failure | mpv: success

I tried this both on the mkv container and the extracted video track in a mp4 container (where possible).

The output of 'ffmpeg -f lavfi -i "movie=test.mp4[out0+subcc]"' has:

Input #0, lavfi, from 'movie=test.mp4[out0+subcc]':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1200k tbr, 1200k tbn, 1200k tbc
    Stream #0:1: Subtitle: eia_608

ffmpeg version (running on an updated Arch Linux):

ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 7.1.1 (GCC) 20170630
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxvid --enable-shared --enable-version3
libavutil      55. 58.100 / 55. 58.100
libavcodec     57. 89.100 / 57. 89.100
libavformat    57. 71.100 / 57. 71.100
libavdevice    57.  6.100 / 57.  6.100
libavfilter     6. 82.100 /  6. 82.100
libavresample   3.  5.  0 /  3.  5.  0
libswscale      4.  6.100 /  4.  6.100
libswresample   2.  7.100 /  2.  7.100
libpostproc    54.  5.100 / 54.  5.100

Attachments (1)

h.264_embedded_cc.mkv (1.7 MB) - added by MayeulC 4 months ago.
Problematic video file

Download all attachments as: .zip

Change History (2)

Changed 4 months ago by MayeulC

Problematic video file

comment:1 Changed 4 months ago by heleppkes

  • Resolution set to invalid
  • Status changed from new to closed

You would have to report this to VLC (or any other player), not to ffmpeg.

As you have proven yourself, ffmpeg not only detects the CC data, but can also extract it using the lavfi subcc method. CC is a bit special and needs handling on the players side of things, nothing ffmpeg can really do about that.

Note: See TracTickets for help on using tickets.