Every "convert MKV to MP4" tutorial online eventually points at VLC (File → Convert / Save) or HandBrake (drag file, hit Start). Both work. Both are also 100 MB desktop installs for a job that's usually a container swap - rewriting a few kilobytes of header bytes with no re-encoding of the video or audio streams. Here's why the browser can do the same operation in seconds, without the install.
#What actually needs to happen when you "convert" MKV to MP4
On a normal MKV file (one video track, one audio track, optionally subtitles, containing H.264 or HEVC video plus AAC or AC-3 audio), the conversion to MP4 doesn't require decoding a single frame or re-encoding a single audio sample. What has to happen:
- Read the MKV's EBML container structure to find the video, audio, and subtitle tracks and their codec configurations.
- Write a new MP4 container header (ftyp, moov, mdat atoms) with equivalent codec configuration.
- Copy the compressed video bytes and compressed audio bytes into the new container without touching them.
- Convert any embedded SubRip or ASS subtitles to MP4's tx3g format; drop bitmap subs because MP4 has no container home for them.
That's the whole operation. FFmpeg calls it a "stream copy" (-c copy) or "remux". VLC calls it "Convert" with the "Keep original video/audio track" option. HandBrake calls it "Passthrough" mode. All three tools run the same underlying code and produce identical output MP4 files.
#Why the browser can do this
The FFmpeg codebase compiles to WebAssembly. That means the same demuxer that reads MKV and the same muxer that writes MP4 - the exact code paths VLC and HandBrake invoke - can run inside a browser tab, on your local file, without a server round-trip. The WebAssembly binary is about 15 MB compressed, loads lazily on first use, and stays cached in your browser for later visits.
The technical cost is real: WebAssembly is a bit slower than native code (10-30% depending on the operation), and browsers cap file access at 8 GB (Wave's current limit). For a 90-minute HD MKV that's well under the cap, the container swap runs in about 3-5 seconds - roughly matching what VLC does natively.
#When VLC and HandBrake still win
- Files over 8 GB. Long 4K MKV recordings or scene releases can hit 15-25 GB. Wave rejects those; VLC handles any size local ffmpeg supports.
- Complex multi-track workflows. Multi-audio pass-through with track selection UI, multi-subtitle track selection, and chapter editing are HandBrake's home turf. Wave takes defaults; changing them means using HandBrake.
- Batch processing. Converting 200 MKV files in one queue is a HandBrake job (Add All → Start Queue). Wave is one-file-at-a-time.
- Re-encoding to save space. Both VLC and HandBrake are configured for encoding as the primary path with lots of preset control. Wave's re-encode path exists but its UI is optimized for the common case, not fine control.
#When the browser wins
- You just want to convert a file, quickly, without an install. The most common case. Drop file, hit convert, save. Done in under a minute end-to-end including the wasm engine load.
- You're on a machine you don't own or can't install software on. Kiosk, library computer, work laptop with locked admin, someone else's machine.
- You want privacy. No file uploads, no external server, no third-party knows the conversion happened. Open your browser's Network tab while converting: no file bytes leave the tab. The wasm binary loads on the initial page visit; the conversion itself is entirely local.
- You need to hand a Windows recipient an MP4 without walking them through a HandBrake install. Send them the link, they drop the file, they save the MP4. No support call.
#The actual how-to
- Open /mkv-to-mp4/ in any modern browser.
- Drop your .mkv file onto the card, or click "Pick a video". The WebAssembly engine loads on first use (~15 MB, cached afterward).
- Wave inspects the streams and picks Fast copy (no re-encoding) or Re-encode (only for MKVs with VP9 or Vorbis, which MP4 can't hold).
- Click Convert. Save the MP4.
For files under 8 GB with standard H.264 or HEVC content, the whole conversion runs in seconds. Nothing installed, no server round trip, no quality lost. The same operation VLC or HandBrake would run - just in a browser instead of a desktop app.
#The takeaway
Converting MKV to MP4 doesn't need a 100 MB install for the common case - it's a container swap that can run in a browser tab. Wave does that job for files up to 8 GB in seconds, with no upload and no re-encoding on standard content. For large files, batch jobs, or fine-grained re-encode control, HandBrake and VLC are still the right tools. For everything else, the browser is faster and doesn't leave software on the machine.