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
ffmpegapproach as found on this SO answer, but I apparently dont have themov_textcodec 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.
33 Answers
Try downloading the static build of ffmpeg from their download site:
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.
2As 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 If you're looking to embed subtitles (rather than burn) then try a free GPL software called Video Updater Tools.
It uses other tools behind the scene (like ffmpeg, mkvmerge, mp4box etc) but packaged nicely into a GUI and CLI. It works on directories recursively so you can completely automate the entire process. You can drag and drop files/folder in the GUI version or use the CLI for scripting.
It can embed SRT subtitles (and chapters from EDL) in MP4/M4V/MKV containers from EDL and SRT files.
(It can also extract subtitles from most container formats if required)