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.
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.
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