Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a good quality MKV file that has several subtitle options. I want to add an additional subtitle file to the list.

Some search online led me to use video converters, and basically re-encode the movie into a new file. That seems really overkill to me. Plus I may loose the previous subtitles, and some image quality along the way.

I'm on OSX.

share|improve this question

2 Answers 2

Removing subtitles:

mkvmerge -o output.mkv input.mkv -S # remove all subtitle tracks
mkvmerge -o output.mkv input.mkv -s 3,4 # remove tracks 3 and 4
mkvmerge -o output.mkv input.mkv -s '!3' # remove all subtitle tracks except 3
mkvmerge -i input.mkv # show track numbers

Adding subtitles:

mkvmerge -o output.mkv input.mkv subs.srt
mkvmerge -o output.mkv input.mkv --language 0:ger --track-name 0:German subs.srt

Extracting subtitles:

mkvextract tracks input.mkv 3:subs.srt
for f in *.mkv; do
  sub=$(mkvmerge -i "$f" | awk '$4=="subtitles"{print;exit}')
  [[ $sub ]] || continue
  [[ $sub =~ S_TEXT/ASS ]] && ext=ass || ext=srt
  track=$(awk -F '[ :]' '{print $3}' <<< "$sub")
  mkvextract tracks "$f" "$track:${f%mkv}$ext"
done

mkvmerge and mkvextract can be installed with brew install mkvtoolnix.

share|improve this answer
1  
MKVMerge GUI is already available on Mac OS X, but nevertheless, it's a good how to for console fans. –  Bora Jun 18 '13 at 23:35

There are two basic ways of showing subtitles. You can encode the pixels into the video itself. This is called "hardsubbing". The advantage here is the simplicity for the video player, it's just a video stream. The disadvantages are that you had to reencode the video, which takes time, and has some fidelity loss. If you get a better translation, well, it's pixels in the video. And you can only have one language.

What is somewhat better is "softsubbing", which is to have a text file someplace, separate from the video stream. There are many different formats of subtitle files, but at their base they all have "text, start what time, remove what time" at their core. Some have additional features like colors and orientation on the screen. The advantage to this is you can have multiple languages (think of a DVD, you have multiple languages available) and you can fix typos and such in the file. And if you don't need subtitles, well you just turn them off.

Softsubs can either be separate files - most players will automagically look for subtitles with the same name (different extension) as the main video. Or certain container file formats (like MKV) can have them embedded inside. Check out MKVtoolnix (there is a mac port) for MKV file tools. This should let you embed softsubs without reencoding.

Note that not all players can support all formats. My experience is that XBMC has issues with SSA files, but the much simpler SRT files are fine. VLC will play anything, if it's supported on your platform.

share|improve this answer
    
Good answer, though it should be noted that some soft-subtitles -- especially DVD subtitles -- are bitmap-based, rather than text-based. The main effect of which is to make them almost impossible to edit -_- –  evilsoup Jun 18 '13 at 16:17
    
@evilsoup thanks, didn't know that. –  Rich Homolka Jun 18 '13 at 17:04
    
Yep, IDX+SUB VOBsub, where IDX is a text file but SUB contains bitmaps. –  Karan Jun 18 '13 at 19:20
    
changed link to the direct download page. –  Bora Jun 18 '13 at 23:38

protected by slhck Jan 17 at 14:15

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.