How to Extract Subtitles from MKV
With FFmpeg
- List the tracks:
ffprobe -v error -show_entries stream=index,codec_name:stream_tags=language -of csv=p=0 input.mkv. - Extract the first subtitle track as SRT:
ffmpeg -i input.mkv -map 0:s:0 subs.srt(use0:s:1for the second, and so on). - Keep ASS styling:
ffmpeg -i input.mkv -map 0:s:0 -c copy subs.ass. - Image subtitles (PGS) cannot become text this way; copy them out with
ffmpeg -i input.mkv -map 0:s:0 -c copy subs.sup.
With MKVToolNix
Run mkvmerge -i input.mkv to see the track IDs, then mkvextract input.mkv tracks 2:subs.srt (replace 2 with the subtitle track ID). mkvextract writes the track in its original format, so use .ass for ASS and .sup for PGS.
Turning PGS or VobSub into SRT
Image-based subtitles need OCR. Subtitle Edit (free, Windows) opens .sup and .sub/.idx files or the MKV itself and converts them to SRT with OCR; check the result for misread letters. If a video has no subtitle track at all, an AI subtitle generator for SRT and VTT can create one.
VLC
VLC switches and displays subtitle tracks, but it has no simple command to save an embedded track as a file. Use FFmpeg or MKVToolNix for that.
MKV's Killer Feature: Unlimited Tracks
Unlike MP4, which has practical limitations on track count and format support, MKV (Matroska) was designed from the ground up to handle complex media files:
- Multiple audio tracks: English, Japanese, Spanish, commentary — all in one file with language tags
- Multiple subtitle tracks: Different languages and formats, each toggleable by the player
- Chapter markers: Named chapters with nested editions for scene navigation
- Attachments: Fonts (for styled subtitles), cover art, and other embedded files
This is why MKV is the preferred format for movie collections, anime libraries, and media servers like Plex and Kodi. A single MKV file can be a complete package with every language option included. For the rest of the differences between the two formats, see our MKV vs MP4 container comparison.
Subtitle Formats in MKV
SRT — Simple Text Subtitles
SubRip Text (.srt) is the most basic and widely compatible subtitle format:
- Plain text with timestamps — no styling, colors, or positioning
- Universal player support (VLC, Plex, Kodi, most smart TVs)
- Small file size (a few KB for a full movie)
- Can be extracted from MKV and used as a sidecar file with MP4
SSA/ASS — Styled Subtitles
SubStation Alpha (.ssa) and Advanced SubStation Alpha (.ass) are rich subtitle formats:
- Styling: Custom fonts, colors, bold, italic, outlines, shadows
- Positioning: Subtitles can appear anywhere on screen (top, bottom, sides, overlapping)
- Animation: Fade in/out, movement, karaoke effects
- Font embedding: MKV can embed the required fonts as attachments, ensuring styled subtitles display correctly on any system
- Primary use: Anime fansubs, where styled subtitles are an art form with elaborate typesetting
ASS subtitles can only be fully preserved by burning them into the video during conversion. Converting ASS to SRT strips all styling, leaving only plain text with basic timing.
PGS — Blu-ray Bitmap Subtitles
Presentation Graphic Stream (.pgs) is the subtitle format used on Blu-ray discs:
- Image-based: Each subtitle is a pre-rendered bitmap image, not text
- Cannot be searched or edited: Since they're images, not text, you can't search, copy, or modify them
- Large file size: A full movie's PGS subtitles can be 20–40 MB
- Preservation: Can only be burned into the video or kept in MKV format. MP4 does not support PGS
VobSub — DVD Bitmap Subtitles
The older equivalent of PGS, used on DVDs. Also bitmap-based (image subtitles) with the same limitations: cannot be converted to text, must be burned in or kept in MKV.
Audio Tracks in MKV
MKV supports virtually any audio codec with unlimited tracks:
| Audio Codec | Type | Channels | MP4 Compatible? |
|---|---|---|---|
| AAC | Lossy | Stereo / 5.1 | Yes |
| MP3 | Lossy | Stereo | Yes |
| AC-3 (Dolby Digital) | Lossy | 5.1 | Yes (limited support) |
| DTS | Lossy | 5.1 | No |
| DTS-HD Master Audio | Lossless | 7.1 | No |
| Dolby TrueHD | Lossless | 7.1 + Atmos | No |
| FLAC | Lossless | Stereo / 5.1 | No |
| Opus | Lossy | Stereo / 5.1 | Limited |
A typical movie MKV might contain: English DTS-HD 7.1 (default), English AC-3 5.1 (compatibility), Japanese AAC stereo, plus director's commentary in AAC stereo — all in one file.
What Happens When Converting MKV to MP4
MP4 has significant limitations compared to MKV for multi-track content:
Audio Track Selection
Most converters, including ours, keep one audio track. If your MKV has 4 audio tracks, only one survives. Our converter uses FFmpeg’s default choice: the track with the most channels (the first one if several tie), not necessarily the track flagged as default. With FFmpeg you can pick another one, for example -map 0:v:0 -map 0:a:1 for the second audio track.
Subtitle Handling
- Text subtitles (SRT): Can be embedded as MP4 mov_text (limited player support) or extracted as a separate .srt sidecar file
- Styled subtitles (ASS/SSA): Cannot be embedded in MP4 with styling intact. Options: burn into video (permanent, styled) or convert to SRT (loses all styling)
- Bitmap subtitles (PGS/VobSub): PGS cannot be stored in MP4; VobSub can, but few players show it. Burn them in or discard them
Chapter Markers
MP4 supports basic chapter markers, but the nested editions and named chapters that MKV provides may be simplified or lost during conversion.
Recommendation: If your MKV has multiple audio tracks, styled subtitles, or other advanced features you want to preserve, keep the original MKV as your archive copy. Convert to MP4 only for sharing or playback on devices that don't support MKV. When the codecs fit, you can convert MKV to MP4 without losing quality by remuxing.
How to Preserve Subtitles During Conversion
Burn-In (Hardcoded)
Rendering subtitles permanently into the video image. The subtitles become part of every frame:
- Pros: Works on every device, preserves ASS/SSA styling, no compatibility issues
- Cons: Cannot be turned off, video must be re-encoded, one language only
- Best for: Anime with styled ASS subtitles, sharing with specific audience
SRT Sidecar File
Extracting SRT subtitles as a separate .srt file that sits alongside the .mp4:
- Pros: Can be toggled on/off in most players, multiple languages possible (one file each)
- Cons: Two files to manage, some players don't detect sidecar files automatically
- Best for: Text-only subtitles that need to be toggleable
Embedded mov_text
MP4's native subtitle format (tx3g/mov_text):
- Pros: Single file, toggleable in some players
- Cons: Plain text only (no styling), limited player support, often fails on smart TVs
- Best for: Simple text subtitles when a single file is required
Anime-Specific: SSA/ASS Styled Subtitles
Anime fansubs are a unique case because ASS/SSA subtitles are an integral part of the viewing experience. They include:
- Karaoke effects for opening/ending songs
- Typesetting that matches on-screen signs and text
- Custom fonts, colors, and positioning for each character
- Translation notes that appear in specific screen regions
When converting anime MKV to MP4, burning in the ASS subtitles is the only way to preserve this styling. Converting to SRT destroys all typesetting and reduces the subtitles to plain white text at the bottom of the screen.
Tools for Managing MKV Tracks
- MKVToolNix: The definitive GUI tool for MKV manipulation. Add, remove, reorder, and extract tracks. Free for Windows, Mac, and Linux.
- FFprobe: Command-line tool to identify all tracks:
ffprobe -v error -show_entries stream=index,codec_type,codec_name -of csv=p=0 input.mkv - VLC: View track information via Tools > Codec Information, switch audio/subtitle tracks during playback.
Keep or Burn Subtitles When Converting to MP4 (FFmpeg)
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:0 -map 0:s:0 -c:v copy -c:a aac -b:a 192k -c:s mov_text output.mp4— turns a text subtitle (SRT or ASS) into MP4’s mov_text track; styling is lost.ffmpeg -i input.mkv -vf subtitles=input.mkv -c:v libx264 -crf 20 -c:a aac -b:a 192k output.mp4— burns the first text subtitle track into the picture and keeps ASS styling (needs FFmpeg built with libass).ffmpeg -i input.mkv -filter_complex "[0:v][0:s:0]overlay" -c:v libx264 -crf 20 -c:a aac -b:a 192k output.mp4— burns a PGS image subtitle track in.