# How to extract subtitles from an MKV on a Mac (free tools)

> Extract SRT, ASS, or PGS subtitles from an MKV file on macOS using MKVToolNix or FFmpeg. Learn the exact commands and why you often don't need to extract.

Published 2026-10-31 · Formats & codecs · https://www.hazenstudio.com/maclc/blog/extract-subtitles-from-mkv/

## In short

- You can extract embedded subtitle tracks from an MKV file in seconds using MKVToolNix or FFmpeg.
- Text tracks like SRT and ASS export directly as human-readable documents.
- Blu-ray PGS tracks export as bitmap SUP files that require OCR software to convert to text.
- Extracting subtitles never requires re-encoding the video or audio streams.
- Modern Mac media players read embedded MKV subtitles directly, making extraction optional.

To extract subtitles from an MKV file on a Mac, you can use either MKVToolNix (using the `mkvextract` command-line utility or its graphical tools) or FFmpeg in Terminal. Both tools are free, open source, and demux subtitle tracks in seconds without re-encoding your video.

Many Mac users assume they must extract subtitles because Apple's built-in QuickTime Player cannot read Matroska files or embedded subtitle streams. While extracting tracks is essential if you want to edit dialogue, translate foreign phrases, or import captions into video editing software, you often do not need to extract subtitles just to watch your movie.

## Do you actually need to extract subtitles from your MKV?

Before opening Terminal or downloading conversion software, ask yourself why you want to extract the subtitle file.

If your primary goal is to watch your video with subtitles on your Mac, extraction is an unnecessary step. The Matroska (`.mkv`) container format was designed specifically to bundle multiple audio tracks, chapter markers, and multilingual subtitle streams into a single self-contained file.

QuickTime Player refuses to open MKV files because Apple's AVFoundation framework does not support the Matroska container specification, as documented in our guide to [which video formats a Mac supports](/maclc/blog/video-formats-mac-supports/). However, modern open-source media players read embedded MKV subtitle tracks instantly. They let you toggle between languages, adjust timing, and display dialogue directly from the container without generating loose sidecar files on your drive.

You only truly need to extract subtitles if you intend to:

- Edit or re-time dialogue lines in a text editor.
- Import subtitles into professional non-linear video editors like Final Cut Pro or DaVinci Resolve.
- Upload standalone captions to YouTube, Vimeo, or web hosting platforms.
- Convert disc-based bitmap subtitles into lightweight text files using Optical Character Recognition.

## How do you identify the subtitle tracks inside an MKV?

An MKV file can contain dozens of independent data streams, including 4K video, 7.1 surround sound audio, director commentary tracks, and subtitles in ten different languages. Before you can extract a subtitle track, you must discover its specific track number and format type.

You can inspect the internal stream layout using either `mkvmerge` or `ffprobe` in the macOS Terminal.

Open Terminal (found in `/Applications/Utilities/`) and run this command:

```bash
mkvmerge -i "Movie.mkv"
```

The terminal prints a concise inventory of every stream inside the container:

```text
File 'Movie.mkv': container: Matroska
Track ID 0: video (HEVC/H.265)
Track ID 1: audio (DTS-HD Master Audio)
Track ID 2: subtitles (SubRip/SRT) [language:eng]
Track ID 3: subtitles (SubRip/SRT) [language:spa]
Track ID 4: subtitles (HDMV PGS) [language:eng]
```

In this example, Track ID 2 is an English SubRip (`.srt`) text track, Track ID 3 is a Spanish text track, and Track ID 4 is an English Blu-ray bitmap (`.sup`) graphic track. Note the specific Track ID number of the language you wish to extract.

## Method 1: How to extract subtitles using MKVToolNix

MKVToolNix is the industry-standard software suite for creating and altering Matroska files, authored by Moritz Bunkus. It includes a dedicated command-line extraction binary called `mkvextract`.

### Step 1: Install MKVToolNix on macOS

The simplest way to install MKVToolNix on an Apple Silicon Mac is via [Homebrew](https://brew.sh/):

```bash
brew install mkvtoolnix
```

Alternatively, you can download the official signed disk image (`.dmg`) directly from the [official MKVToolNix site](https://mkvtoolnix.download/macos/) and drag the application to your `/Applications` folder.

### Step 2: Run mkvextract in Terminal

Once installed, use the `mkvextract` command followed by the `tracks` argument, your source file name, and the Track ID paired with your desired output file name:

```bash
mkvextract tracks "Movie.mkv" 2:"subtitles_english.srt"
```

If you wish to extract multiple subtitle tracks simultaneously in a single command, separate the track mappings with spaces:

```bash
mkvextract tracks "Movie.mkv" 2:"english.srt" 3:"spanish.srt"
```

`mkvextract` reads the container packets and writes the subtitle file to your current working directory in roughly two to three seconds. Because no video or audio data is altered, the process consumes virtually zero battery and causes no quality loss. To explore track management in detail, see our complete guide to [MKVToolNix on Mac](/maclc/blog/mkvtoolnix-on-mac/).

## Method 2: How to extract subtitles using FFmpeg

If you already have FFmpeg installed on your Mac, you do not need to install MKVToolNix. FFmpeg provides powerful stream-selection flags that can demux subtitle tracks directly to standalone files.

### Step 1: Install FFmpeg

If you do not have FFmpeg, install it via Homebrew:

```bash
brew install ffmpeg
```

### Step 2: Map and extract the subtitle stream

FFmpeg identifies streams using a zero-indexed mapping syntax (`0:s:0` represents the first subtitle stream of the first input file, `0:s:1` represents the second, and so forth).

To extract the first subtitle stream into an SRT file without re-encoding:

```bash
ffmpeg -i "Movie.mkv" -map 0:s:0 -c:s copy "subtitles.srt"
```

If the internal subtitle track is stored in the Advanced SubStation Alpha format, preserve its vector styling tags by matching the output extension to `.ass`:

```bash
ffmpeg -i "Movie.mkv" -map 0:s:0 -c:s copy "subtitles.ass"
```

If you want to convert an embedded subtitle format into SubRip during the extraction pass, omit the `-c:s copy` flag:

```bash
ffmpeg -i "Movie.mkv" -map 0:s:0 "subtitles.srt"
```

For more useful command recipes covering container remuxing, video cutting, and audio extraction, bookmark our [FFmpeg commands cheat sheet](/maclc/blog/ffmpeg-commands-cheat-sheet/).

## What is the difference between extracting text and bitmap subtitle tracks?

When extracting subtitles from MKV files, you will encounter two fundamentally different categories of subtitle streams: text tracks and bitmap image tracks.

| Subtitle Type | Source Media | Codec Identifier | Extracted Extension | Editable in TextEdit? |
| :--- | :--- | :--- | :--- | :--- |
| **SubRip (SRT)** | Web downloads, rips | `S_TEXT/UTF8` | `.srt` | Yes (Plain text) |
| **Advanced SubStation Alpha** | Anime fansubs, styling | `S_TEXT/ASS` | `.ass` | Yes (Plain text script) |
| **Blu-ray PGS** | 1080p / 4K Blu-ray | `S_HDMV/PGS` | `.sup` | No (Binary image bitmaps) |
| **DVD VobSub** | Commercial DVDs | `S_VOBSUB` | `.sub` + `.idx` | No (2-bit pixel bitmaps) |

If your MKV file originates from a commercial Blu-ray disc, the subtitle track is almost certainly formatted as Presentation Graphic Stream (PGS). When you extract a PGS track using `mkvextract` or FFmpeg, the output is a binary `.sup` file containing hundreds of transparent graphic pictures.

If you attempt to open a `.sup` file in macOS TextEdit, you will see unreadable binary gibberish. You cannot edit the text, resize the letters, or search for phrases because there are no text characters inside the file. 

To convert an extracted `.sup` file into an editable `.srt` document, you must run it through Optical Character Recognition (OCR) software such as Subtitle Edit, which scans the pixels of each letter and outputs digital text. To understand why disc formats use pictures instead of text, read our technical breakdown of [PGS subtitles explained](/maclc/blog/pgs-subtitles/).

MacLC plays MKV files directly on Apple Silicon, decoding embedded SRT, ASS, DVD VobSub, and Blu-ray PGS subtitles without requiring extraction or conversion. It lets you switch tracks, adjust timing offsets, and keeps subtitles at SDR white over HDR.

## How do you use your extracted subtitles?

Once you have extracted an SRT or ASS file from your MKV, you can open and edit the text using TextEdit on your Mac. Verify that TextEdit is configured to save files in Plain Text with UTF-8 encoding so you do not introduce corrupted characters. Review our guide on [what an SRT file is](/maclc/blog/what-is-an-srt-file/) to understand cue structures line by line.

If you extracted the subtitle to fix dialogue that appears out of sync with actors' voices, you can re-time the cues using subtitle editors or adjust the playback offset on the fly. To fix timing drift caused by frame rate mismatches, see our troubleshooting guide on [fixing subtitles out of sync](/maclc/blog/fix-subtitles-out-of-sync/).

If you extracted the subtitle because your video player refused to open the MKV file, consider switching to an open-source media player. Download [MacLC from the download page](/maclc/donate/). It plays Matroska containers natively on Apple Silicon, decodes multi-track audio and embedded subtitles out of the box, and eliminates the need to run Terminal commands every time you want to watch a movie.

## Questions people ask

### How do I extract an SRT file from an MKV on a Mac?

The fastest way is using FFmpeg in Terminal with the command ffmpeg -i input.mkv -map 0:s:0 output.srt, which extracts the first subtitle stream into an external SubRip file in seconds without touching the video.

### Can I extract subtitles from an MKV using a graphical interface?

Yes. You can install MKVToolNix for Mac. Using its accompanying gMKVExtractGUI or MKVToolNix GUI tools, you can open the MKV file, select the subtitle track checkbox, and export the file with one click.

### Why did my extracted subtitle save as a .sup file instead of .srt?

If your MKV file was created from a Blu-ray disc, the subtitles are stored as PGS bitmap images. When extracted, they save as .sup graphic files, which require Optical Character Recognition (OCR) to convert into text.

### Do I need to extract subtitles to watch an MKV on a Mac?

No. QuickTime Player cannot read embedded MKV subtitles, but third-party open-source media players read embedded SRT, ASS, and PGS subtitle tracks directly from the MKV container with zero extraction needed.

---
MacLC is a free, open-source video player for Apple Silicon Macs: https://www.hazenstudio.com/maclc/ · download: https://www.hazenstudio.com/maclc/donate/
