Is there a way to soft embed subtitles into an mp4 file without re-encoding?

I am trying to add an srt file(s) to mp4 files. Is there a way to do it without re-encoding the file.

What I have tried:

  • Added subtitles with the handbrake-cli. While this technically worked, it obliterated the quality of the video and took a long time to re-encode the file
  • I tried an ffmpeg approach as found on this SO answer, but I apparently dont have the mov_text codec and no one else seems to either

There is another SuperUser Answer which suggests that I may need to look for a muxer. But that answer pertains to Mac OS only.


Solution 1:

Try downloading the static build of ffmpeg from their download site: http://ffmpeg.org/download.html

Note, though, that mov_text seems to be a hit-and-miss situation; sometimes it works, sometimes it doesn't. You might have much better results re-muxing into a matroska container (.mkv), and play it using VLC.

Solution 2:

As explained by @axel_c, you could use mkvmerge to create a Matroska container and include the subtitles in the output:

mkvmerge -o output.mkv video.mp4 subtitles.srt