“Extract subtitles from an MKV” means three very different jobs depending on how the subtitles are stored. Find your case first; the right tool follows.
How to tell which case you have
- In VLC, open Subtitle → Sub Track. If you can turn the subtitles on and off, they are a track (case 1 or 2).
- If they are always visible and cannot be turned off, they are burned in (case 3).
- For tracks,
ffmpeg -i movie.mkvlists them:subrip,assorwebvttare text;hdmv_pgs_subtitleordvd_subtitleare images.
Case 1: text track (SRT, ASS, WebVTT)
The easy case: the text is already in the file, you only copy it out.
- ffmpeg:
ffmpeg -i movie.mkv -map 0:s:0 subs.srt(use0:s:1for the second track, and so on). - MKVToolNix:
mkvextractor the GUI, pick the track and save. - Online, nothing to install: upload the video to our free MKV/MP4 subtitle extractor and download its subtitle track as SRT.
Case 2: image track (PGS, VobSub)
Common on Blu-ray and DVD rips. Each subtitle is a picture, so there is no text to copy: you need OCR. Subtitle Edit can OCR these tracks into SRT for free. Check the result, OCR confuses similar letters such as l and I.
Case 3: burned into the picture
The subtitles are pixels of the video. You need OCR on the video frames, which reads the text area frame by frame and groups the lines with their times. Free route: VideoSubFinder plus an OCR tool, which takes some setup. Online: extract hardcoded subtitles gives you a timed SRT you can edit or translate.
After extracting
Convert to VTT or ASS, fix the encoding or shift the timing with the free subtitle tools, or translate the file with the subtitle translator.
