How to compress an MP4
- Add your MP4. Drag and drop your .mp4 file onto the dropzone, or click to browse. The video is loaded into memory on your device, not sent anywhere.
- Pick a quality preset. Start with Balanced. It sets a sensible CRF and caps the resolution; switch to a smaller preset for tighter files or a higher one to stay closer to the source.
- Fine-tune the CRF. Nudge the CRF slider if you want more control. Lower keeps more detail and a bigger file; 23–28 is the practical sweet spot for most clips.
- Compress and download. Re-encoding runs on your device with ffmpeg. When it finishes you'll see the size saved, then download your smaller MP4.
Why are MP4 files so large?
MP4 is a container, not a codec — it wraps a video stream, an audio stream, and metadata into one file. The size of that file is driven almost entirely by the bitrate of the video stream: how many bits per second the encoder spends describing the picture. Bitrate in turn scales with three things you control: the resolution (a 4K frame has four times the pixels of 1080p), the length of the clip, and the quality target the source was exported at.
Phones, screen recorders, and editing apps usually err on the side of quality, exporting at high bitrates so nothing looks soft. That is great for archiving but wasteful for sharing: a one-minute 4K phone clip can easily top 150 MB, far more than you need to send over messaging apps or email. Re-encoding at a sensible quality target, and often a smaller resolution, is where the big savings come from.
How CRF and resolution shrink the file
This tool re-encodes your video with H.264 using a Constant Rate Factor (CRF). Instead of forcing a fixed bitrate, CRF aims for a constant perceivedquality and lets the encoder spend more bits on complex scenes and fewer on simple ones. The scale here runs from 18 (very high quality, larger file) to 36 (smaller file, more visible artifacts). Each step of roughly ±6 corresponds to about half or double the file size, so small slider changes have a big effect.
The second lever is resolution. Lowering the maximum height — say from 2160p down to 1080p or 720p — cuts the pixel count dramatically, and fewer pixels need fewer bits at the same quality. For footage that will be watched on a phone or embedded in a document, a 720p or 1080p re-encode often looks identical in practice while being a fraction of the size. The presets combine a CRF and a height cap so you can get a good result without tuning anything; the CRF slider is there when you want finer control.
Two things matter less than people expect. First, frame rate: most clips do not need more than the source already has, and lowering it saves only modest space compared with CRF and resolution. Second, the audio track. Speech and music add some weight, but a typical AAC soundtrack is a small slice of a video file, so the picture is almost always where the savings live. That is why this tool focuses your choices on quality and resolution — the two settings that move the needle — and re-encodes audio to a sensible bitrate automatically.
MP4, H.264, and when re-encoding actually helps
The vast majority of MP4 files already contain an H.264 (also called AVC) video stream, which is why MP4 plays virtually everywhere — from old phones to smart TVs. You can read how browsers describe the MP4 container and the H.264 codec on MDN’s media container guide and its AVC / H.264 codec reference. Outputting H.264 in MP4 keeps that universal compatibility intact.
Re-encoding an MP4 that is already H.264 helps when the source was exported generously — high bitrate, large resolution, or both — because there is slack to remove. It helps far less, and can even produce a larger file, when the video was already compressed tightly: re-encoding a lossy stream means decoding it and lossily compressing it again, so you only win if your new target is genuinely lower than the original. If the output would not be smaller, this tool keeps you informed so you can simply keep your original. To squeeze more out, raise the CRF or drop the resolution rather than expecting magic from a single pass.
Tips and the in-browser speed trade-off
Everything happens on your device using a WebAssembly build of ffmpeg, which is what makes this private — but it is also single-threaded. A native desktop encoder spreads work across every CPU core; the browser build, for compatibility and security, uses one. That means long or high-resolution videos can take a while and may strain low-memory phones. A few habits keep things smooth:
- Trim first when you can. Length is a direct multiplier on both file size and encode time, so cutting dead air before compressing is the easiest win.
- Drop the resolution for sharing. 720p or 1080p is plenty for messaging, slides, and most web embeds; reserve 4K for archives you actually watch on a big screen.
- Start with Balanced, then compare. Re-run at a smaller preset and check whether you can spot the difference at your real viewing size before committing.
- Keep big jobs to one device at a time. Close other heavy tabs so the encoder has memory and CPU to work with; short clips finish fastest.
Working with other formats? Use the broader video compressor for MP4 plus everything else, the dedicated MOV, WebM, MKV and AVI compressor for non-MP4 footage, or the audio compressor when you only need to shrink a soundtrack or voice recording.