DuckConvert · · Updated
Convert MOV to MP4 Without Uploading: The Private Way
A video file is two separate things. The container is the wrapper — it holds the streams, the timing information and the metadata, and it is what the file extension names. The codec is the compression scheme the picture and sound are actually stored in, sitting inside that wrapper.
Almost everything people believe about MOV files is really about the second one.
MOV and MP4 are nearly the same format
MP4 was standardised from Apple's QuickTime file format. They share a structure, both built from the same nested boxes, and the overwhelming majority of players that open one will open the other. If you have ever renamed a .mov to .mp4 and had it play, that is why.
So when an iPhone video will not play on a Windows machine, the extension is usually a red herring. The real cause is the codec: since iOS 11, iPhones record in HEVC (H.265) by default, and HEVC playback depends on hardware and licensing that plenty of Windows installs, older Android phones and web upload forms simply do not have. Put that same HEVC stream in an MP4 wrapper and the file still will not play. The wrapper was never the problem.
What this converter actually does
The MOV to MP4 converter runs ffmpeg compiled to WebAssembly, in your browser, with no upload. It does not rename or rewrap — it re-encodes, every time:
- Video to H.264 with
libx264, at CRF 23, pixel formatyuv420p - Audio to AAC at 128 kbps
That combination is the most widely playable video on earth. H.264 in yuv420p is what every browser, every social platform, every messaging app and every television made in the last fifteen years can decode. Forcing the pixel format matters more than it looks: some Apple captures use a format that ffmpeg would otherwise preserve and that many players cannot show, producing a file that plays as a green or blank rectangle.
What that costs
Re-encoding is honest work, and it is not free.
It takes real time. The shipped ffmpeg build is single-threaded, so the encode uses one CPU core no matter how many the machine has, and the duration scales with the length and resolution of the video. A few minutes of 4K is a few minutes of waiting. Any tool promising an "instant" conversion of a large video is either remuxing or lying.
It is a second generation of compression. Your camera already compressed the footage once. CRF 23 is a good quality target — visually close to the source for typical material — but it decodes what the camera produced and compresses it again, and nothing recovers detail lost at that step.
The first run downloads the engine. About 10 MB of gzipped WebAssembly has to arrive, and unpack to roughly 32 MB, before any conversion can start. It is cached afterwards, so the second conversion begins immediately, but the first one does not.
Where it stops
The conversion is unconditional. If your MOV already contains H.264 — many screen recordings and older captures do — then all it needed was the wrapper swapped, which a stream copy would have done losslessly in about a second. This tool re-encodes it anyway, spending time and a generation of quality on a file that did not need either. There is no remux fast path.
Everything also runs in your tab's memory rather than on a server. That removes the upload wait and the file-size paywall, and replaces them with a different ceiling: a browser tab gets a fraction of the machine's RAM, so very large files can fail on a phone and succeed on a desktop. If you want the numbers behind that trade-off, the video and audio converter page goes through them.