Convert MKV to MP4

Convert MKV videos to MP4 in your browser, free and private. Fast stream copy keeps original quality, with no upload, no size limit and no watermark.

🌐 Español

Drop your file here (.mkv)

πŸ”’ Private by design: your files are processed locally in your browser and never uploaded to any server.

What Matroska holds that MP4 cannot

Matroska started in 2002 as an open, deliberately unrestricted container, and that ambition is exactly why .mkv files are so common among rips, archives and OBS recordings. It will hold any codec, any number of audio tracks, soft subtitles in several formats, chapters, cover art and even the font files a fancy ASS subtitle track needs to render correctly.

MP4 is narrower by design. It descends from Apple’s QuickTime file format by way of the ISO base media file format, and its track types are a defined list rather than an open one. Practically, that means H.264 and HEVC video and AAC, AC-3 or MP3 audio go in cleanly, while a Vorbis audio track or a text subtitle track has nowhere to live.

That narrowness is also the reason MP4 plays everywhere. An iPhone will not open an MKV at all. Plenty of smart TVs, car head units and hotel Chromecasts skip it. PowerPoint refuses it, most web upload forms reject the extension outright, and video editors are inconsistent about the container even when they support the codec inside.

So the conversion you are usually after is not really a conversion. In most MKV files the video is already H.264 or HEVC, precisely what an MP4 expects. The bytes are fine; the box around them is the problem.

Remux first, re-encode only if that fails

The default mode does a remux. FFmpeg is asked to copy the streams (-c copy) into a new MP4 rather than decode and re-compress them, so not a single frame is touched. Quality is bit-for-bit identical to the source, and the work is bounded by how fast your disk can move the data rather than by how fast your CPU can encode. That is the whole reason to prefer it: a remux moves bytes, a re-encode does arithmetic on every pixel of every frame, and the gap between the two grows with the length of the film.

Two details in that command are worth knowing about. It maps the first video stream and the first audio stream only, with the audio marked optional so a silent screen recording still converts instead of erroring out. And it passes -movflags +faststart, which moves the file index to the front of the file so playback can begin before the download finishes.

The remux runs in strict mode, which means a non-zero exit code from FFmpeg is treated as a real failure rather than being ignored and handed to you as a truncated file. When that happens, or when the output comes back empty, the tool falls back automatically to a re-encode: libx264 at CRF 23 with the fast preset, plus AAC audio at 128 kbps. You always end up with a working MP4, and you only pay the encoding time when the container genuinely could not take the original streams.

Choosing Re-encode to H.264 (maximum compatibility) yourself skips the copy attempt entirely. Do that when the fast result plays on your computer but not on the device you actually made it for.

Running the conversion

  1. Drop the .mkv into the box above, or click to pick it.
  2. Leave the mode on Fast; keep original quality (recommended) unless you already know the target device is old.
  3. Click Convert MKV to MP4 and wait for the bar. On a remux it can jump in large steps, because there is very little per-frame work to report progress against.
  4. Download the result. It keeps your original filename with the extension swapped.

When the MP4 still will not play

The most common cause by far is HEVC. The fast mode preserves whatever video codec was in the MKV, and H.265 is legal inside an MP4, so the conversion succeeds and the file is valid; a 2015-era TV or a Firefox install without hardware HEVC support simply cannot decode it. Re-running with Re-encode to H.264 (maximum compatibility) fixes that case permanently. If you want to know which codec you are dealing with before converting, Video Info Viewer reads it out of the file header.

An audio-only failure, where the picture plays but there is silence, usually means the source used a codec that survived the copy into a container your player parses differently. The re-encode mode normalises the audio to AAC and clears it.

A conversion that dies partway through on a very large file is almost always memory. Both the input and the output are held in the tab, so the practical limit is your device rather than any rule of ours.

How this compares to VLC, HandBrake and the upload sites

VLC can remux, but its convert dialogue is famously easy to get wrong and it will happily produce an unplayable file if you pick a mismatched profile. HandBrake is excellent and does not remux at all: it is an encoder, so every MKV that goes through it comes out re-compressed and slightly degraded even when a straight copy would have done.

The upload sites have the opposite problem. MKV files are routinely several gigabytes, which is expensive to accept, which is why free tiers cap at 100 MB or so and put you in a queue. This tool runs the same FFmpeg those tools are built on, compiled to WebAssembly and executed in your tab, on the single-threaded core because the multi-threaded one needs HTTP headers that would break the ads paying for this site. That trade costs some speed on a re-encode and buys you no upload, no size cap, no queue and no copy of your video on anyone else’s disk.

If your source is a camcorder file rather than a download, MTS to MP4 covers AVCHD specifically, and Video Converter handles the more unusual input formats.

Frequently asked questions

My MKV has English and Japanese audio. Do both survive?

No. The conversion maps the first video stream and the first audio stream only, so a second language track is dropped along with chapters and any font attachments. If the wrong language ends up in the MP4, reorder the tracks in a Matroska editor first, or keep the MKV for archive and convert a copy per language.

Why does the first conversion take longer to start than the second?

The FFmpeg WebAssembly core is roughly 31 MB and is fetched from unpkg the first time a tab needs it, then reused for every later run in that same tab. So the initial wait is a download, not encoding, and converting three files in a row is much faster after the first one.

What does 'faststart' do to my MP4?

Both modes pass `-movflags +faststart`, which rewrites the file so its index sits at the front instead of the end. That is what lets a browser or a phone begin playing before the whole file has arrived, and some upload forms reject an MP4 without it because they cannot read the duration from the first few kilobytes.

Will the fast mode ever silently give me a broken file?

It should not. The remux attempt runs in strict mode, so a non-zero FFmpeg exit or a zero-byte output both count as a failure and trigger the H.264 re-encode automatically rather than handing you the partial result. The usual trigger is audio the MP4 container cannot hold, with Vorbis the classic offender.

Will a multi-gigabyte MKV rip convert, or is there a ceiling?

There is no imposed limit, since your own device does the work and nothing is uploaded. The real ceiling is memory, because the input and the output both live in the WASM filesystem inside the tab, so a 6 GB film on a laptop with 8 GB of RAM can fail where the same file converts fine on a desktop. Trim the part you need first with the Trim Video tool if you hit that wall.

What happened to my subtitles?

They are not carried over, because MKV stores SRT and ASS subtitles as text tracks that MP4 cannot stream-copy. Pull them out as separate files first with the Extract Subtitles from Video tool, which lists every track in the MKV and saves the ones you choose as SRT or VTT, then load that file alongside the MP4 in your player.

Related tools