14
1
When playing an MKV movie (h264/aac) with a separate .SRT file, VLC lets me control the looks of subtitles perfectly from the menu.
However, after losslessly converting the MKV/SRT to MP4 with built-in subtitles ("mov_text"), the subtitles are displayed as a small Arial(?) font, and VLC settings have no effect on this.
I thought maybe the MP4 file contained some information on how to display the subtitles that had precedence, but it happens even after I stripped all metadata from the MP4 file.
Is this a bug/feature in VLC? How do I make it adhere to the visual subtitle settings for all sorts of video files.
EDIT: SRT EXAMPLE
1
00:00:00,000 --> 00:00:07,000
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
2
00:00:09,000 --> 00:00:12,000
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.
(etc.)
EDIT: SEE FFMPEG OUTPUT BELOW
ffmpeg -y -i "in.mp4" -i "in.srt" -acodec copy -vcodec copy -scodec mov_text -absf aac_adtstoasc "out.mp4"
ffmpeg version 2.8 Copyright (c) 2000-2015 the FFmpeg developers
built with Apple LLVM version 7.0.0 (clang-700.0.72)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-ffplay --enable-libfdk-aac --enable-nonfree --enable-vda
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, mpegts, from 'in.mp4':
Duration: 00:55:34.20, start: 10.099667, bitrate: 2441 kb/s
Program 1
Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 162 kb/s
Stream #0:2[0x102]: Data: timed_id3 (ID3 / 0x20334449)
Input #1, srt, from 'in.srt':
Duration: N/A, bitrate: N/A
Stream #1:0: Subtitle: subrip
Output #0, mp4, to 'out.mp4':
Metadata:
encoder : Lavf56.40.101
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc
Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 162 kb/s
Stream #0:2: Subtitle: mov_text ([8][0][0][0] / 0x0008)
Metadata:
encoder : Lavc56.60.100 mov_text
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #1:0 -> #0:2 (subrip (srt) -> mov_text (native))
Press [q] to stop, [?] for help
frame=83215 fps=3113 q=-1.0 Lsize= 958501kB time=00:55:34.08 bitrate=2355.1kbits/s
video:891302kB audio:65022kB subtitle:18kB other streams:0kB global headers:0kB muxing overhead: 0.225788%
Which OS and VLC version? Does it behave the same way with MKVs with embedded SRTs too? – Karan – 2015-05-06T20:14:47.520
OS X 10.10.3. VLC 2.2.1. Embedding the SRT into the MKV works. So it must be related to the MP4 container or the
mov_text
subtitle format. (The latter is required for MP4, and seems to be incompatible with MKV.) – forthrin – 2015-05-07T07:44:33.790What did you use to convert the video? I assume
ffmpeg
due to the tag. Can you show your command and the complete console output?ffmpeg
supports proper encoding/decoding of some stylization in mov_text (font size, font color, bold, italic, etc). I'm guessing your build is old, but it is currently impossible to tell without more info from you. However, I'm not sure how VLC deals with any of that. – llogan – 2015-10-16T05:41:59.963See new information added in post. – forthrin – 2015-10-16T12:37:29.723
Can you provide the SRT file? – llogan – 2015-10-17T03:50:37.130
The SRT file is completely standard. It happens for all subtitles. Enclosing a couple of example lines for reference. – forthrin – 2015-10-23T08:43:47.550
It is pointless to convert .mkv to .mp4 with soft (ttxt/tx3g) subtitles. As you noticed, it is buggy in VLC, which plays .mkv fine. I have tried a lot of things, thinking that .mp4 with subtitles would be more widely supported than .mkv (on TVs, etc.). It is not. The only player I know that will not play .mkv is Quicktime, but QT 7 will not play .mp4 either if it has subtitles, and QT 10, like many other players, will play the .mp4 but without subtitles. It looks like the only realistic alternative to mkv is burned-in subtitles. – mivk – 2017-08-20T19:23:19.367