13

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 May 6 '15 at 20:14
  • 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 May 7 '15 at 7:44
  • What 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 Oct 16 '15 at 5:41
  • See new information added in post. – forthrin Oct 16 '15 at 12:37
  • Can you provide the SRT file? – llogan Oct 17 '15 at 3:50
6

Posted the issue withe the VLC developers, and they claim the issue will be fixed in the forthcoming 3.0 release.

  • After almost two years, this issue has not been fixed. Any workaround? – Ricardo Sanchez-Saez Aug 20 '17 at 6:49
  • 2
    Not that I know of. VLC 3 seems to have been in the works forever. I find it peculiar that such an issue is pushed back years in anticipation of a release that never seems to come. I've tried the VLC 3 betas, but I found them too buggy to use on a regular basis. Thus I keep all my SRT files separate from the main video file until a miracle happens. Maybe it would help if more people would follow up on the issue on the VLC bug tracker. trac.videolan.org/vlc/ticket/15627 – forthrin Aug 20 '17 at 8:19
  • @forthrin that ticket you linked was closed two years ago, so I can't seem to add anything to it. I'm not sure why they think it's closed. – Joshua Nurczyk Sep 16 '17 at 10:51
  • @JoshuaNurczyk: The problem is supposedly fixed in VLC 3, but VLC 3 takes year to get to a final release. – forthrin Sep 17 '17 at 11:19
  • 1
    I can confirm that this bug is fixed in VLC 3 – Akira Yamamoto Feb 19 '18 at 10:18
1

This is definitely a MOV_Text/Mp4 container issue, and there is currently no other options to fix it.

Convert Mp4 to MKV with Subtitles losslessly

Also I found that if I extracted the MOV_Text SRT and added it manually, the problem still occurred, but if I downloaded separate SRT file from the internet, I was able to add them manually and then VLC was able to manipulate the font/size etc etc. (I mean that if you don't want to convert, your only option is to download separate SRT file and manually add it in VLC)

  • 1
    while I notice the OP is trying to go from MKV to Mp4, I wanted to share that their is no solution ATM for Mp4 embedded subs that VLC can control font/size etc. You have to add external subs to MP4 or convert to MKV – FreeSoftwareServers Oct 15 '15 at 5:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.