Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save thanhtoan1196/27e29099b7de389a3bbc1212738088db to your computer and use it in GitHub Desktop.
Save thanhtoan1196/27e29099b7de389a3bbc1212738088db to your computer and use it in GitHub Desktop.
Extract subtitles from .mkv files on Mac OS X

Extract Subtitles From .mkv

This instructions whall work on any system (Mac OS X, Linux) supporting installation of mkvtoolnix

Install mkvtoolnix

If you don't have Homebrew installed, do it first, the continue with following command:

brew install mkvtoolnix

List content of the .mkv file

mkvmerge -i myFile.mkv

Example of 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

Enjoy!


Extract Multiple Files

In case you need to this in batch for all files in a directory. Works only if all files have same subtitle Track IDs.

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

Example:

for file in *.mkv; do
  sub=$(echo $file | sed 's/\.mkv$/.srt/'); 
  mkvextract tracks "${file}" 3:"${sub}"; 
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment