How to convert mkv to mp4 locally
- Step 1Drop the .mkv onto the transcoder — The picker accepts
.mkvplus mp4, mov, webm, avi, m4v, and ts. It loads into the tab; nothing is sent to a server. - Step 2Set Container to MP4 — MP4 is the wrapper iOS, TVs, and social platforms expect. (Note: outputting MKV here would defeat the purpose for Apple devices.)
- Step 3Pick a Codec — Choose h264 for maximum compatibility, or h265 for a smaller file if the destination plays HEVC. Both re-encode in software via FFmpeg.wasm.
- Step 4Set the CRF — Keep 23 for a clean result; lower to 18-20 to stay close to source quality, or raise to 26-28 to shrink the file.
- Step 5Run it — FFmpeg.wasm decodes the Matroska stream and re-encodes to MP4 with AAC 128k audio. Long or high-resolution MKVs take longer because this is CPU-only software encoding.
- Step 6Download and check tracks — The MP4 carries one video and one (AAC) audio track. If your MKV had multiple audio languages or soft subtitles, confirm the right one came through (see edge cases).
Codec dropdown — what each option does
These are the five entries in the Codec selector. Every option is a software FFmpeg.wasm encoder running in your tab — there is no hardware/NVENC path in this tool. The CRF box drives quality for the rate-controlled codecs.
| Codec option | FFmpeg encoder | Best for | CRF behaviour |
|---|---|---|---|
| h264 | libx264 | Universal playback — every phone, browser, TV, editor | CRF 0-51, ~18-23 is visually clean; 23 is the default |
| h265 | libx265 | Roughly half the size of H.264 at matched quality; archives | CRF 0-51, ~24-28 matches H.264 CRF 18-23 |
| vp9 | libvpx-vp9 | Open, royalty-free; great for web/<video> playback | CRF 0-51 used as the quality target; slowest of the lot in WASM |
| av1 | libaom-av1 | Smallest files of all; long-term web/archival | CRF 0-51; software AV1 in WASM is very slow — short clips only |
| prores | prores_ks | Hand-off to editors; intra-frame, scrub-friendly | CRF box is ignored — ProRes is not a CRF codec (see the prores spoke) |
Input and output containers
The file picker accepts the input list below; the Container dropdown sets the output wrapper. Output is always a fresh re-encode (the transcoder does not stream-copy), and audio is re-encoded to AAC 128k — or Opus 128k when the output is WebM.
| Container | Accepted as input? | Selectable as output? | Default audio in output |
|---|---|---|---|
MP4 (.mp4, .m4v) | Yes | Yes | AAC 128k |
MOV (.mov) | Yes | Yes | AAC 128k |
MKV (.mkv) | Yes | Yes | AAC 128k |
WebM (.webm) | Yes | Yes | Opus 128k (forced for WebM) |
AVI (.avi) | Yes | Yes | AAC 128k |
MPEG-TS (.ts) | Yes | No (input only) | n/a |
Tier limits for the transcoder (video family)
Limits are per-file size and per-batch file count, not a duration cap — the encode streams to disk so a 90-minute file is bounded by file size, not minutes. The transcoder takes one file at a time (no drag-to-batch in the UI).
| Tier | Max file size | Files per run | Practical note |
|---|---|---|---|
| Free | 1 GB | 1 | Fine for a single phone clip or a short screen recording. A 4K 60fps file fills 1 GB in roughly 2-3 minutes of footage at high bitrate. |
| Pro | 10 GB | 5 | Covers most camera originals and longer recordings; run files one after another. |
| Pro + Media | 100 GB | 50 | Built for raw camera masters and long-form sources. Size, not length, is the gate. |
| Developer | 100 GB | Unlimited | Same 100 GB per-file ceiling, no cap on how many files you process. Pair with the @jadapps/runner for unattended batches. |
Cookbook
Common MKV-to-MP4 jobs and the settings that get them onto the device or platform you need.
MKV that won't open on an iPhone
iOS has no native Matroska support. Re-encoding to MP4 + H.264 makes the same content play in the Photos/Files app and Safari.
Input: lecture.mkv (H.264 video, AC-3 audio)
Settings: Container=mp4 Codec=h264 CRF=23
FFmpeg.wasm (conceptually):
-i lecture.mkv -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k out.mp4
Note: the AC-3 audio is converted to AAC, which iOS plays;
the MKV's AC-3 was part of why it didn't 'just work'.Shrink a large MKV with H.265
A big 1080p MKV needs to fit on a phone with limited storage and the phone is recent enough to play HEVC.
Input: movie.mkv (8 GB, H.264) Settings: Container=mp4 Codec=h265 CRF=26 Result: an MP4 roughly half the size at comparable quality. Only do this if the target device plays HEVC — older TVs and some browsers do not.
MKV with multiple audio tracks
The transcoder carries one audio track through as AAC. If you need a specific language or to keep them all, handle audio separately.
Input: film.mkv (EN + FR + commentary tracks) Transcoder output: MP4 with one AAC audio track. If you need a particular track, first pull the audio you want with /video-tools/audio-track-extractor, or strip extras with /video-tools/metadata-scrubber, then transcode the picture.
MKV with soft subtitles you want burned in
MP4 support for soft subtitles is patchy; for guaranteed visibility, burn them into the picture instead of carrying them as a track.
Input: show.mkv (+ embedded .srt soft subs) 1) Pull the subtitle track with /video-tools/subtitle-extractor → show.srt 2) Burn it permanently with /video-tools/subtitle-burner (Container=mp4) Result: an MP4 with always-on captions no player can hide.
Get under the free 1 GB cap before converting
A long MKV exceeds the free file-size limit. Trim the part you need first — losslessly — then transcode just that.
Input: recording.mkv (1.6 GB) — over the free cap 1) /video-tools/lossless-trimmer cuts at keyframes with NO re-encode → recording-cut.mkv (700 MB), instant. 2) Transcode recording-cut.mkv → MP4 here, now under 1 GB.
Edge cases and what actually happens
MKV is already H.264 — want just a rewrap
By designThe transcoder always re-encodes; it won't stream-copy an MKV into MP4. A pure remux would be instant and lossless, but this tool re-encodes the video. Expect a new bitstream and some time cost.
MKV with multiple audio tracks
One track keptOutput carries a single AAC audio track. To choose or keep a specific language, pull it first with /video-tools/audio-track-extractor or prune extras with /video-tools/metadata-scrubber before transcoding.
MKV with soft subtitles
Not carried reliablySoft subtitle support in MP4 is inconsistent. Extract them with /video-tools/subtitle-extractor and burn them in with /video-tools/subtitle-burner for guaranteed display.
AC-3 / DTS audio in the MKV
Converted to AACSurround codecs like AC-3 or DTS are re-encoded to stereo-friendly AAC 128k. Audio plays everywhere, but multichannel surround is not preserved by this tool.
Outputting MKV instead of MP4
Use MP4 for AppleMKV is a valid output container here, but it won't open in QuickTime/iOS. If the goal is Apple-device playback, the Container must be MP4 (or MOV).
Large 4K MKV on a modest CPU
SlowSoftware encoding (no GPU) makes 4K MKVs slow and memory-hungry. Downscale to 1080p with /video-tools/video-resizer first, or accept a longer encode.
File over the tier size cap
RejectedFree caps at 1 GB per file. Big MKVs frequently exceed it — trim with /video-tools/lossless-trimmer or upgrade the tier.
Chapters in the MKV
Not preservedMKV chapter markers aren't carried into the MP4 by the transcoder. If you need them, extract first with /video-tools/chapter-extractor.
Corrupt or partially-downloaded MKV
ErrorIf FFmpeg can't demux the file (truncated download, bad header) the run fails with a decode error. Re-download the source or repair it before transcoding.
Tab closed mid-encode
AbortedAll work is in the tab. Closing or refreshing it cancels the job and discards the partial MP4 — re-run from scratch.
Frequently asked questions
Why won't my MKV play on iPhone or QuickTime?
Apple devices don't natively support the Matroska (.mkv) container, regardless of the codec inside. Converting to MP4 + H.264 + AAC with this tool produces a file the Photos app, Files app, and Safari all play.
Is the MKV uploaded to convert it?
No. FFmpeg.wasm runs in your browser tab. The MKV is decoded and re-encoded on your own CPU and written back to disk. Nothing leaves your machine except an anonymous processed-file counter for signed-in stats.
Does it just rewrap, or does it re-encode?
It re-encodes. This tool has no stream-copy option, so even an already-H.264 MKV is decoded and re-encoded into the MP4. A pure remux would be faster but is not what this tool does.
My MKV has English and French audio — which one do I get?
The output keeps a single AAC audio track. If you need a specific language, extract it first with /video-tools/audio-track-extractor, or remove the tracks you don't want with /video-tools/metadata-scrubber, then transcode the video.
What about the subtitles in my MKV?
Soft subtitles don't carry reliably into MP4. For captions that always show, pull them with /video-tools/subtitle-extractor and burn them into the picture using /video-tools/subtitle-burner.
Should I output H.264 or H.265?
H.264 for maximum compatibility (TVs, old browsers, social uploads). H.265 only when the target device supports HEVC and you want roughly half the file size at similar quality.
How big an MKV can I convert?
1 GB per file on the free tier, one file at a time. Pro allows 10 GB / 5 files, Pro + Media 100 GB / 50, Developer 100 GB with unlimited count. The gate is file size, not duration.
It's slow on my big MKV — is something wrong?
No — this is software (CPU) encoding in WebAssembly with no GPU acceleration, so large or 4K files genuinely take a while. Lower the resolution with /video-tools/video-resizer or raise the CRF to speed things up.
Will surround sound survive the conversion?
No. AC-3/DTS surround tracks are re-encoded to AAC 128k stereo. Audio plays everywhere, but if you need multichannel surround preserved, this tool isn't the right step.
Can I keep the MKV's chapters?
Chapters aren't carried into the MP4. If you need them, extract them first with /video-tools/chapter-extractor before transcoding.
My MKV is too big for the free tier — now what?
Trim it first. /video-tools/lossless-trimmer cuts at keyframes with no re-encode, instantly producing a smaller MKV that fits under the cap, which you then transcode here.
Does this work without installing anything or admin rights?
Yes. It's a web page; nothing installs and no admin permission is needed. That makes it handy on locked-down work or school computers where you can't install HandBrake.
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.