I am using Handbrake to convert various movies to MP4 format, so they can be played by iPhone/Ipad... but by default Handbrake does not include the subtitles inside the output files.

I am looking for a batch solution that would allow me to do this (so I can do 20-30 files at once, not only one by one).

  • The MP4 file format doesn't support subtitles. You might be able to render subtitles onto the video itself, but I have yet to see anything that can do it. – 0942v8653 Jan 13 '14 at 21:35
  • @0942v8653 mp4 does support ttxt and VobSub but not srt or ass. – Lri Jan 15 '14 at 22:43

You might use mkvextract to extract subtitles:

brew install mkvtoolnix;for f in *.mkv;do set $(mkvmerge -i "$f"|awk -F'[ :/)]' '/^Track ID [0-9]+: subtitles/{print $3,tolower($7);exit}');[[ $1 ]]&&mkvextract tracks "$f" "$1:${f%mkv}$2";done

Then use the external subtitles with the mp4 files.

The mp4 container doesn't support srt or ass subtitles, but it does support ttxt (MPEG-4 Part 17) and VobSub (sub and idx files). I couldn't get ffmpeg -i input.mkv -c copy -scodec mov_text output.mp4 to work though, or at least the subtitles weren't displayed by VLC or QuickTime Player.

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .