Convert MOV, MKV or WebM to MP4 without losing quality

Usually the wrong box, not the wrong video

Drop a video anywhere on this page. Each stream is checked against MP4 first, and you are told whether it can be copied across untouched or has to be re-encoded — before anything is written.

  • MOV
  • MKV
  • WebM
  • MP4
  • MPEG-TS
Or drop a file anywhere on this page
01Copy first
H.264 with AAC or MP3 is moved into the MP4 packet for packet. No decode, no quality change.
02Told before, not after
Remux or re-encode, and why, is on screen before you press anything.
03No upload
The file is read and written in this tab. Nothing leaves the device.
Converting to MP4, in depth

Containers, codecs, and when a conversion is really a copy

MP4 is a box, not a codec

A video file is two things at once. The container — MP4, MOV, MKV, WebM — is the box: it holds the streams, their timestamps, an index of where each frame sits, and metadata such as rotation and language. The codecs — H.264, HEVC, VP9 and AV1 for pictures; AAC, Opus and MP3 for sound — are how the content inside the box was compressed. "Convert MOV to MP4" names two boxes and says nothing about what is inside them, and what is inside decides everything that follows: how long the job takes, and whether any quality is lost.

Most players care about both. A television that "plays MP4" is really saying it can open the MP4 box and decode H.264 and AAC inside it. Hand it an MP4 containing VP9 and it opens the box, finds a codec it has no decoder for, and shows a black screen or an error. That is why the file extension alone never tells you whether a file will play.

Remux versus transcode

There are two fundamentally different ways to get from one container to another.

  • Remuxing (a stream copy) takes the compressed packets out of the source and writes them into the new container unchanged. Nothing is decoded, so nothing can be lost: the picture and sound in the output are bit-identical to the source. The work is reading and writing bytes, so its duration scales with the file’s size, not its length — a 2 GB file costs about what copying 2 GB costs.
  • Transcoding (re-encoding) decodes every frame to raw pixels and compresses it again. That is the only way to change a codec, and it has two costs. Time: the work scales with the number of frames. And quality: lossy compression applied a second time throws away a second round of detail, even at generous settings.

The frame arithmetic is worth doing once. A ten-minute clip at 30 frames per second is 10 × 60 × 30 = 18,000 frames. An encoder managing 30 frames a second needs 600 seconds — exactly real time. One managing 120 frames a second needs 150. The same clip remuxed never touches a frame at all.

So the useful question is never "how do I convert this to MP4" but "can this be remuxed into MP4". This page asks it first, per stream, and tells you the answer before it writes anything.

Why MOV to MP4 is usually lossless

MP4 was built on Apple’s QuickTime file format: ISO standardised QuickTime’s structure as the base media file format, and MP4 is a profile of it. The two boxes are close relatives, and every mainstream codec found in a MOV is also legal in an MP4. An iPhone set to Most Compatible records H.264 video with AAC audio in a MOV — precisely the pair every MP4 player expects — so moving it into an MP4 is a pure remux: seconds, and no change at all to what you see or hear.

The same holds for most MKV files downloaded or recorded with H.264 and AAC, and for screen recorders such as OBS that can write H.264 into MKV so a crash does not corrupt the whole recording. The container changes; the content does not.

When it isn’t lossless

A remux is only possible when each stream is in a codec the output is allowed, and expected, to hold. The common exceptions:

  • iPhone "High Efficiency" video is HEVC. MP4 can legally contain HEVC, but many Windows machines, older TVs and some web players cannot decode it. For a file that must play everywhere, it is re-encoded to H.264 — which also requires a browser able to decode HEVC in the first place.
  • WebM holds VP8, VP9 or AV1 video with Vorbis or Opus audio. Vorbis has no standard place in MP4 and VP8 is almost unplayable there, so both are re-encoded; VP9, AV1 and Opus are MP4-legal but far from universally playable.
  • Professional MOV from cameras and editors often carries ProRes video or uncompressed PCM audio. Neither belongs in a consumer MP4, so both are re-encoded — and a ProRes file shrinks dramatically as a result, because ProRes is built for editing, not delivery.
  • Film rips in MKV frequently carry AC-3, DTS or FLAC audio. The picture may remux while only the sound is re-encoded to AAC, which is quick because audio is a tiny fraction of the work.

That last case is common enough that this page treats it as its own path: the picture is copied, and only the audio is re-encoded. You keep the speed and the untouched video.

Universal or Modern

The Compatibility setting decides which codecs count as MP4-ready. Universal, the default, copies only H.264 with AAC or MP3 audio, because that combination opens on every phone, TV, browser and Windows install without a codec pack — and "it must play everywhere" is why most people want an MP4. Modern also copies HEVC, AV1 and VP9 video and Opus or FLAC audio. It is faster and lossless for more files, and the right choice when you know the destination — a recent Mac, a phone, a browser — can decode them. When both settings produce the same plan for your file, the inspector says so.

What a conversion keeps, and what it doesn’t

The output carries the primary video track and the primary audio track. Subtitles, alternative language tracks, chapters and attachments in an MKV are not carried over: MP4 cannot hold MKV’s common subtitle formats, such as ASS and PGS, as they are, and quietly converting some of them would be a guess. A portrait phone clip stays portrait.

The MP4 is written with its index at the front (fast start), so it begins playing on the web before it has fully downloaded. If a track has to be dropped — audio in a codec this browser cannot decode, for example — the result says so in plain words. It is never removed silently.

On a remux, a section cut starts at the keyframe at or before the in point you type, because a copied stream cannot begin between keyframes. If the cut has to be exact to the frame, use the trimmer, which measures that drift before it writes.

The same jobs in FFmpeg

Everything here has a command-line equivalent, and the workbench prints the one that matches your file and settings. The shapes are:

SituationCommand
Everything MP4-readyffmpeg -i input.mov -c copy -movflags +faststart output.mp4
Picture ready, audio notffmpeg -i input.mkv -c:v copy -c:a aac -movflags +faststart output.mp4
Picture must changeffmpeg -i input.webm -c:v libx264 -crf 18 -pix_fmt yuv420p -c:a aac -movflags +faststart output.mp4
HEVC kept as isffmpeg -i input.mov -c copy -tag:v hvc1 -movflags +faststart output.mp4

Two details matter. -c copy checks legality, not playability: ffmpeg will happily copy HEVC, VP9 or Opus into an MP4 that many players then refuse, which is the mistake the per-stream check above exists to prevent. And -tag:v hvc1 is what makes a copied HEVC stream open in QuickTime and on Apple devices, which will not play the hev1 tag ffmpeg writes by default.

Questions

What is the difference between remuxing and converting?
MP4, MOV and MKV are containers; H.264, VP9 and AAC are the codecs inside them. Remuxing moves the compressed packets into a new container without decoding them, so the picture and sound are bit-identical and it takes seconds. Converting, or transcoding, decodes every frame and compresses it again, which is slower and costs one generation of quality.
Why was my file re-encoded instead of copied?
Only H.264 video with AAC or MP3 audio is copied, because that combination plays on every phone, TV and Windows machine without a codec pack. MP4 can legally hold HEVC, VP9 or AV1 too, but an MP4 with those inside still fails to play in many places, which defeats the reason people convert to MP4. So those streams are re-encoded to H.264.
Is this the same as ffmpeg -c copy?
The remux path is. It does what ffmpeg -i input.mkv -c copy -movflags +faststart output.mp4 does: the packets are copied, and the index is written at the front of the file so it starts playing before it has fully downloaded. The difference is that it checks the codecs first, where ffmpeg will happily copy something into an MP4 that most players then refuse.
What happens to the audio?
AAC and MP3 are copied as they are. Other audio, such as Opus or FLAC, is re-encoded to AAC, or to Opus where the browser has no AAC encoder, which is typically Firefox. If a track cannot be decoded at all, for example DTS, the video is still converted and the result says the audio was dropped. It is never removed silently.
Will an iPhone MOV convert?
Yes, by one of two routes. Recorded with the camera’s Most Compatible setting, it is H.264 and remuxes in seconds. Recorded with the default High Efficiency setting, it is HEVC, which has to be re-encoded, and that needs a browser able to decode HEVC — usually one with hardware support for it. If this browser cannot, the page tells you instead of producing a broken file.
Is there a file size limit?
No plan limit and no upload cap. The file is held in the tab, so memory is the ceiling: a few hundred megabytes is comfortable on a modern laptop. A remux needs far less work than a re-encode, so large files that are already H.264 are the easy case.

Other local video tools

All tools

Start processing

Drop a MOV, MKV or WebM in. You will know whether it is a copy or a re-encode before anything is written.