Video Subtitle Extractor
Inspect a video file for subtitle tracks and get a straight answer about what a browser can and cannot extract.
Convert with this tool
or choose a file from your device — it is processed in this tab and never uploaded
Accepted: MP4, MOV, MKV, WebM containers
Files stay on your device. There is no upload, no queue and no watermark, so a conversion works even with the network switched off after the page has loaded.
Supported formats & processing
| Accepted input | MP4, MOV, MKV, WebM containers |
|---|---|
| Produced output | A detection report — no subtitle file is produced, by design |
| Processing | Web Audio API + canvas + native JavaScript encoders |
| Upload required | No — the file is read locally and never transmitted |
How to use this tool
- Add the video fileUp to four megabytes of the header are scanned.
- Read the detection reportCandidate subtitle markers found in the header region are listed.
- Check the container and codec rowsThey tell you whether the file even has room for subtitle streams.
- Use the desktop command if you need the subtitlesThe exact FFmpeg command is printed on this page.
- Or transcribe the audio insteadExtract the audio to MP3 and run it through a transcription service.
About this tool
This page exists because the honest answer is more useful than a button that pretends. Browsers expose subtitle tracks to JavaScript only through the video element's textTracks collection, and only for tracks that are actively loaded — and they never expose the raw tx3g, S_TEXT/UTF8 or ASS payloads that a real extractor needs.
So instead of generating an empty .srt file, this tool reads the container header, looks for the byte signatures of known subtitle formats, and reports what it found along with the exact command you can run on your own machine to get the subtitles out properly.
Features
- Reads the container header for known subtitle byte signatures
- Reports container and codec so you know what is possible
- No fake output — the limitation is stated plainly
- Includes the exact desktop FFmpeg command for real extraction
- Suggests the audio transcription route as a practical alternative
- Runs locally, so nothing is uploaded
Browser limits on this page
Subtitle extraction from a video container
Subtitle tracks live in the container, but browsers do not expose their payloads to JavaScript, and there is no API to demux tx3g, S_TEXT or ASS streams. The tool therefore reports the subtitle markers it can see rather than writing a fake .srt file.
Desktop FFmpeg does this properly: ffmpeg -i input.mkv -map 0:s:0 output.srt
Frequently asked questions
Why can the browser not extract subtitles?
Subtitle tracks live inside the container as separate streams, and the browser's media stack does not expose them to JavaScript. The textTracks API only lists tracks that are already being played and never gives access to the raw bytes. Demuxing the container is required, which means a full parser.
What is the desktop command?
ffmpeg -i input.mkv -map 0:s:0 output.srt extracts the first subtitle stream as SubRip text. Add -c:s srt to force conversion if the source is ASS or SSA.
Can I get subtitles another way?
Yes. Extract the audio with the video to MP3 tool and run it through a speech-to-text service, or use the original subtitle file if you have it — it is almost always better than anything reconstructed from the video.
What do the detected markers mean?
They are byte-string matches for known subtitle identifiers such as tx3g, S_TEXT/UTF8 or ASS. A match is evidence that a subtitle stream may exist, not proof that it is usable.