Extract Subtitles From mkv

The instructions how to extract subtitles from mkv file using mkvtoolnix. This shall work on Mac OS X and Linux.

Install mkvtoolnix via Homebrew (Mac OS X)

brew install mkvtoolnix

List content of the .mkv file

mkvmerge -i myFile.mkv

Example of the file content

File 'myFile.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_DTS)
Track ID 3: subtitles (S_TEXT/UTF8)
Track ID 4: subtitles (S_TEXT/UTF8)
Chapters: 22 entries

Track ID 3 and 4 are subtitles.

Extract subtitles tracks into separate files

mkvextract tracks myFile.mkv 3:myFile1.srt 4:myFile2.srt

Extract Multiple Files

In case you need this in batch for all files in a directory (works only if all files have the same subtitle Track IDs).

Make sure you use correct file extension (*.mkv) and track-ids (example: 3)

for file in *.mkv; do
  sub=$(echo $file | sed 's/\.mkv$/.srt/');
  mkvextract tracks "${file}" 3:"${sub}";
done