How to extract subtitles without installing mkvtoolnix
- Step 1Open the tool — nothing to install — Load the extractor page in any modern browser. FFmpeg.wasm downloads into the tab on first use (cached afterwards). No MKVToolNix, HandBrake, or command-line ffmpeg needed.
- Step 2Drop your video — Drag an
.mkv,.mp4,.mov,.webm, or.tsonto the page. One file at a time, read locally. This is the in-browser equivalent of pointingmkvextractat a file. - Step 3No flags, no track indices to type — Unlike
mkvextract tracks file.mkv 3:out.srt, there is nothing to type — the panel reads No options. JAD auto-scans subtitle streams0:s:0–0:s:4and exports each text track. - Step 4JAD converts each text track to SRT — Each text track is converted to SubRip with
-c:s srt— the same command a desktop FFmpeg would run. ASS styling is flattened to plain SRT; bitmap tracks are skipped (as withmkvextract, OCR is a separate step). - Step 5Download the SRT or ZIP — A single text track downloads as
<name>.srt. Multiple tracks download as<name>-subtitles.zip— equivalent to running the extract once per track index on the desktop. - Step 6Use the SRT anywhere — Edit it, ship it as a sidecar, or burn it in with the subtitle burner — also a no-install browser tool. Your video file is never modified by the extraction.
JAD vs the desktop installs
How the browser extractor compares to the usual desktop tools for the text-subtitle case.
| JAD (this tool) | MKVToolNix / mkvextract | HandBrake | |
|---|---|---|---|
| Install required | None (browser) | Yes (desktop app) | Yes (desktop app) |
| Admin rights | No | Often yes | Often yes |
| Underlying engine | FFmpeg (WASM) | libmatroska / mkvextract | FFmpeg / libav |
| Output format | SubRip (.srt) always | Native codec or text | SRT / SSA on conversion |
| Track selection | All text tracks auto | Per-index, manual | Per-track UI |
| Uploads your file? | No (local) | No (local) | No (local) |
| Bitmap → text (OCR) | No (skipped) | No (extract only) | No (passthrough/burn) |
Command-line equivalents
What JAD does under the hood, mapped to the commands you would otherwise type.
| Task | What you'd run on desktop | What JAD does for you |
|---|---|---|
| Extract first text track | ffmpeg -i in.mkv -map 0:s:0 -c:s srt out.srt | Auto-runs this for 0:s:0 |
| Extract all text tracks | Loop the above for each 0:s:i | Loops 0:s:0–0:s:4 and ZIPs the results |
| mkvextract equivalent | mkvextract tracks in.mkv 3:out.srt | No index needed — picks up every text track |
Tier limits
No install, but the same file-size ceilings apply.
| Tier | Max file size | Files at once |
|---|---|---|
| Free | 1 GB | 1 |
| Pro | 10 GB | 5 |
| Pro-media | 100 GB | 50 |
| Developer | 100 GB | Unlimited |
Cookbook
Browser operations alongside the desktop command they replace.
Replace `mkvextract tracks file.mkv 3:out.srt`
On the desktop you'd find the track index, then run mkvextract. In the browser you just drop the file and JAD finds the text track for you.
Desktop: mkvinfo file.mkv # find subtitle track ID = 3 mkvextract tracks file.mkv 3:out.srt JAD: drop file.mkv → out is file.srt (text track auto-detected)
Replace a per-track FFmpeg loop with one drop
Extracting all languages on the CLI means looping over stream indices. JAD does the loop internally and ZIPs the output.
Desktop:
for i in 0 1 2; do
ffmpeg -i in.mkv -map 0:s:$i -c:s srt track-$i.srt
done
JAD: drop in.mkv → in-subtitles.zip
(in-track-1.srt, in-track-2.srt, in-track-3.srt)Locked-down work laptop, no install allowed
IT blocks new software. The browser tab is all you need — FFmpeg.wasm runs in-page with no installer and no admin prompt.
Scenario: corporate laptop, can't install MKVToolNix. Steps: 1. open the extractor in the browser (cached after first load) 2. drop deck-recording.mkv 3. download deck-recording.srt No admin rights, no install, no upload.
Bitmap subtitles still need OCR — same as mkvextract
Neither the browser tool nor mkvextract converts PGS to text. The honest equivalence: extract gives you the stream type you have, OCR is always a separate step.
Input: film.mkv (0:s:0 = hdmv_pgs_subtitle) JAD result: No text subtitle tracks found in this video. mkvextract result: extracts a .sup (still bitmap, not text) Either way → OCR (e.g. Subtitle Edit) to get an editable .srt.
Phone / tablet extraction
No desktop app exists for the device, but the browser does. Drop a downloaded MKV right on a tablet and get the SRT.
Device: iPad / Android tablet (no MKVToolNix build exists) open extractor in mobile browser pick lecture.mkv from Files → lecture.srt saved to Downloads
Edge cases and what actually happens
Bitmap subtitles — same OCR limit as the desktop tools
SkippedLike a plain mkvextract, this tool cannot turn image-based PGS/VobSub subtitles into text — -c:s srt fails on bitmap streams, so they're skipped. The desktop tools have the same limitation: they'd extract a .sup/.idx that is still a picture. OCR (e.g. Subtitle Edit) is always a separate step.
Need a non-SRT output (e.g. keep ASS)
SRT onlyMKVToolNix can extract a track in its native format (e.g. keep ASS as ASS). This browser tool always converts to SRT, so styled ASS is flattened. If you specifically need the native ASS file, that's the one case where a desktop mkvextract does more — otherwise the SRT output is equivalent and more portable.
More than five subtitle tracks
First 5 onlyA desktop FFmpeg loop can address any track index; this pass scans 0:s:0–0:s:4. A file with six or more subtitle streams returns only the first five. For a track beyond index 4, remux to reorder it forward, then re-extract.
First load downloads the WASM engine
ExpectedOn first use the tab downloads the FFmpeg.wasm core (cached afterwards), so the very first extraction has a short startup. Subsequent extractions reuse the cached engine. This is the trade for not installing anything — there's no persistent binary on disk.
Very large file in a memory-limited browser
Memory boundUnlike a native binary, the browser holds the file in tab memory. A huge remux on a low-RAM device can run out of memory where a desktop tool would stream from disk. Use a desktop tool for extreme files, or extract from a smaller copy. Tier caps (Free 1 GB → Developer 100 GB) bound this.
No subtitle stream at all
No text tracksIf the file has no subtitle streams, you get No text subtitle tracks found in this video. — the same empty result mkvextract would give. There's nothing embedded to pull out.
Garbled accents in the output SRT
Source encodingAs with a raw mkvextract, a track authored in Windows-1252 can produce mojibake. There's no force-UTF-8 toggle here — re-save the .srt as UTF-8 in a text editor, exactly as you would after a desktop extraction.
Burned-in subtitles
Not extractableNeither the browser nor any extractor recovers hardsubbed captions — they're pixels in the frames, not a stream. OCR on rendered frames is the only route, and that's a separate desktop workflow regardless of which extractor you use.
Frequently asked questions
Do I really not need to install MKVToolNix or HandBrake?
Correct — nothing to install. FFmpeg compiled to WebAssembly runs inside the browser tab and performs the same subtitle demux as those desktop tools. It works on locked-down, borrowed, and mobile devices where you can't install software.
Is the output the same as a desktop FFmpeg or mkvextract?
For text subtitle tracks, yes — it runs the equivalent of ffmpeg -map 0:s:i -c:s srt, so the SRT is what you'd get on the command line. The one difference: this tool always converts to SRT, whereas mkvextract can keep a track in its native format (e.g. ASS).
Does it upload my video to extract subtitles?
No. Everything runs locally in the browser via FFmpeg.wasm — the file is read and processed on your machine and never sent to a server. That's a privacy improvement over web converters that ingest your video server-side.
Can it OCR image-based subtitles like the desktop tools?
No — and neither does a plain mkvextract. Bitmap (PGS/VobSub) tracks can't convert to SRT text; they're skipped. OCR (e.g. with Subtitle Edit) is always a separate step regardless of which extractor you use.
How do I extract all language tracks without typing track indices?
Just drop the file. Where the CLI needs you to loop over stream indices (-map 0:s:0, 0:s:1, …) or look up IDs in mkvinfo, JAD auto-scans the first five subtitle streams and ZIPs the results — no indices to type.
Will it work on a phone or tablet?
Yes. There's no MKVToolNix build for iOS/Android, but the browser extractor runs on tablets and phones — open the page, pick the file, and download the SRT. Memory limits apply for very large files.
Why is the first extraction a little slow?
On first use the tab downloads the FFmpeg.wasm core, which is then cached. Subsequent extractions reuse it and start instantly. This is the trade-off for not installing a persistent binary.
Can I keep an ASS track as ASS, like mkvextract can?
No — this tool always converts to SRT, which flattens ASS styling. That's the single case where a desktop mkvextract does more (it can output the native ASS). For most workflows the portable SRT is preferable.
Is there a file-size limit since it runs in the browser?
Yes: Free 1 GB, Pro 10 GB, Pro-media and Developer 100 GB per file, with no duration cap. The browser holds the file in tab memory, so extremely large remuxes on low-RAM devices may need a desktop tool or a smaller copy.
What if the file has no subtitles?
You'll see No text subtitle tracks found in this video. — the same empty result mkvextract would give. There's nothing embedded to extract.
Why are accents broken, and is that a tool bug?
No — it's the source track's encoding (often Windows-1252). A raw mkvextract would show the same. There's no force-UTF-8 option here; re-save the .srt as UTF-8 in a text editor to fix it.
What other no-install video tools pair with this?
The subtitle burner hardcodes an SRT back in, the audio-track extractor pulls the soundtrack, and the chapter extractor reads chapter markers — all browser-based with nothing to install.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.