How to extract subtitles from a video.
Two cases: the video has soft subtitle tracks embedded, or the captions are burned into the pixels. Each needs a different tool.
Extracting subtitles from a video falls into two cases. If the video has soft subtitle tracks (common in MKV, sometimes in MP4 with mov_text or CEA-608), you can pull the text track losslessly with ffmpeg or MKVToolNix. If the captions are burned into the video pixels, you need OCR or AI re-transcription — SoCaptions handles the latter by transcribing the audio track from scratch.
Step by step
- 01Check whether subtitles are soft or burned inRun `ffmpeg -i video.mkv` (no output flag). The console will list streams. If you see `Stream #0:2: Subtitle: subrip` or similar, the file has soft subs. If only Video and Audio streams, the captions are either burned in or missing.
- 02If soft subs: extract with ffmpeg`ffmpeg -i video.mkv -map 0:s:0 subtitles.srt`. The 0:s:0 selects the first subtitle stream. Repeat with 0:s:1 for the second language, and so on.
- 03If burned-in: re-transcribe with SoCaptionsDrop the video into SoCaptions. Whisper transcribes the audio in 10–60 seconds and produces a fresh SRT. Accuracy is 92–97% on clean audio.
- 04Optional: OCR the burned-in pixelsTools like Subtitle Edit (free) and SubtitleEdit-Pro can OCR captions directly from video frames. Useful when audio quality is poor but the captions are clear visually.
- Soft subtitle extraction is lossless and instant
- AI re-transcription works on any video with audio
- Multiple language tracks extractable separately from MKV
- OCR works even when audio is corrupted
- OCR accuracy varies with caption typography
- AI re-transcription depends on audio quality, not video
- Burned-in captions can't be losslessly recovered
- Some MP4s strip soft subs during platform upload
FAQ
How do I extract subtitles from an MKV file?+
Use ffmpeg: `ffmpeg -i video.mkv -map 0:s:0 subtitles.srt`. Or use MKVToolNix for a GUI workflow that lists all subtitle tracks.
Can I extract subtitles from an MP4?+
Sometimes. MP4 supports soft subs via mov_text and CEA-608/708. Run `ffmpeg -i video.mp4` to check stream listing. If no subtitle stream appears, the captions are either burned in or absent.
How do I extract burned-in captions?+
Either re-transcribe with AI (audio-based, what SoCaptions does) or OCR the video frames (Subtitle Edit). AI re-transcription is faster and more accurate when the audio is clean.
Why don't TikTok / Reels / Shorts videos have extractable subtitles?+
These platforms burn in their own captions or render them in the player UI. Downloaded MP4s typically have no soft subtitle track — re-transcribe to recover the text.
Burned-in (hardcoded) subtitles become part of the video pixels. They survive every cross-post and every download — at the cost of being un-toggleable. Here's when to use them and how to do it across SoCaptions, ffmpeg, Premiere, and CapCut.
Out-of-sync subtitles come from one of three causes: a fixed offset, a frame-rate mismatch, or progressive drift. Each has a different 5-minute fix.
AI translation is fast and free; human translation is slow and accurate. The right choice depends on your audience size, content type, and tolerance for cultural mistakes.