I have a .mp4 and .vtt file with the same name. I tried to synch both the files to iTunes by importing them at the same time, but when I play the video, there are no captions. The video plays in the browser (Chrome) with captions fine. How do I add the .vtt subtitles to the .mp4 video? I would prefer a raw, native way to do it, without using a third-party app (except for iTunes). If not possible I would be OK with FFMPEG if needed.
2 Answers
Wow I finally found a solution. I found https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options and https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo so I tried a few things and found this worked.
C:\Users\Chloe\Videos>"\Program Files\WinFF\ffmpeg.exe" -i russian_ark.mp4 -i russian_ark.vtt -vcodec copy -acodec copy -scodec mov_text russian_ark_sub.mp4
Unfortunately WinFF doesn't have options for subtitles in the GUI. I don't know what mov_text
is but luckily FFMPEG can understand VTT and convert to it and Apple can understand mov_text
. I tried to use -scodec srt
but it kept giving me an error track 2: could not find tag, codec not currently supported in container. Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted.
I didn't want to hard-code the subtitles as described in the second link, but I was almost ready to.
Thanks to Insomniac Software for letting me know Apple can't do this automatically, not even with iTunes.
-
ffmpeg -i input.mp4 -vf "subtitles=input.vtt" -c:a copy output.mp4
works for me in MacOS– 4t8ddsCommented Dec 3, 2023 at 14:14
VTT subtitles are a feature of HTML5 which is why it is working in Chrome. iTunes doesn't support them.
You will need to 3rd party utility to embed the subtitle as an additional track in the MP4 container. Normally I would recommend Subler for this but I don't believe it supports VTT subtitles yet. However, if you can convert the VTT file into SRT format, then you can easily do it with Subler.
Once converted, open the MP4 with Subler, then add the SRT file. You can choose to have the subtitles simply included in the file so that they are optional during playback or set them to be forced then they will always be displayed (if the playback software supports it, which iTunes and all of Apple's products do)
Hope that helps
-
-
1Then you should ask an admin to move your question to more appropriate StackExchange community (perhaps Video Production at video.stackexchange.com). You posted this in the Apple section. However, the problem/answer is still the same. You need to find a utility to embed SRT format subtitles into the MP4 file. Commented Apr 18, 2016 at 22:45