Compress an MP4
MP4 is a container, not a compression level — which is why two MP4s of the same clip can differ tenfold in size. What matters is the bitrate inside it, and that is what this changes.
Compress an MP4
Pick a quality level; the file comes out as big as this clip needs.
Choose a video or drop it here
Read by this page, never uploaded. MP4, MOV, MKV, WebM, AVI, WMV, FLV and more.
Resolution, frame rate, audio, codec
Nothing is uploaded
FFmpeg runs in this tab. Turn your Wi-Fi off after the page loads and it still works.
Hit an exact size
Say "under 25 MB" and the bitrate is solved for you, two-pass.
No account, no watermark
No sign-up, no email, no logo burned into your video.
No file-size cap
No 100 MB paywall. The only limit is your browser's memory, around 2 GB.
MP4 is a box, not a size
MP4 is a container. It says how the streams are packed, not how heavily they are compressed. Inside a file called clip.mp4 there is a video stream — usually H.264, sometimes H.265 — and that stream's bitrate is what decides the file size. Two MP4s of the same 30-second clip can be 4 MB and 400 MB and both are perfectly valid MP4s.
So "compress MP4" always means one of two things: spend fewer bits per second, or have fewer pixels to spend them on.
Quality mode, and what CRF actually does
This page defaults to constant quality (CRF), which is the right default when you do not have a number to hit. Instead of forcing a bitrate, you tell the encoder how much loss is acceptable and it spends whatever each scene needs: a static talking head gets few bits, a handheld shot of leaves in wind gets many. The file ends up as big as this clip needs, which is why the size is an estimate until it finishes.
| Setting | CRF | What it is for |
|---|---|---|
| High | 20 | Archiving, re-editing, anything that will be compressed again later |
| Balanced | 24 | The default. No visible difference on a phone or laptop at normal distance |
| Small | 28 | Chat apps and email, where "sends at all" beats "looks perfect" |
Each step of +6 on the CRF scale roughly halves the bitrate. That is why Small is so much smaller than High, and why going past 28 falls apart quickly.
If you need an exact size instead
Switch the tool to Target size and type a number. It reads the clip's duration, subtracts the audio, solves for the video bitrate that fits and encodes two-pass. That is the mode to use when a form, a mail server or a Discord channel has given you a hard limit.
Before you reach for H.265
H.265 genuinely produces a smaller file at the same visual quality — usually 25–30% smaller. In this browser tab it also encodes around four times slower, and a handful of destinations refuse it. Use it when you control the player and you care about size more than time; otherwise H.264 is the right answer.
How it works
Pick your video
It is read straight from your disk by this page. No upload, no queue, no account.
Choose a quality level
Balanced is visually indistinguishable on a phone or laptop at normal viewing distance.
Compress in the tab
FFmpeg runs in WebAssembly on your own machine. The first run downloads a 31 MB engine, once per browser.
Download it
The result is handed back as a file. Nothing was sent anywhere, so there is nothing to delete afterwards.
Compress for a specific limit
Compress a video for email
Targets 20 MB by default.
Open the compressor →Compress a video for Discord
Targets 9 MB by default.
Open the compressor →Compress a video for WhatsApp
Targets 15 MB by default.
Open the compressor →Compress a video to 8 MB
Targets 7.5 MB by default.
Open the compressor →Compress a video to 25 MB
Targets 24 MB by default.
Open the compressor →Compress a MOV file
Quality-based, no target to pick.
Open the compressor →Compress a video for Instagram
Quality-based, no target to pick.
Open the compressor →Reduce a video's file size
Quality-based, no target to pick.
Open the compressor →Compress a 4K video
Quality-based, no target to pick.
Open the compressor →Questions people actually ask
Short answers here, the full story in the guides.
Is my video uploaded to a server?
No. The compressor is FFmpeg compiled to WebAssembly and it runs inside this browser tab. Your file is read from disk by the page, processed in memory, and handed back to you as a download. You can load the page, disconnect from the internet, and compress anyway — which is the simplest proof there is.
Does compressing a video lose quality?
Yes, always — compression works by throwing information away. The honest question is whether you can see it. At a sensible bitrate for the resolution, most people cannot tell on a phone or laptop screen. Anyone promising "no quality loss" is describing the perception, not the file.
How do I compress a video to an exact size?
Switch the tool to Target size and type the number. It reads the clip's duration, subtracts the audio budget, solves for the video bitrate that fits, and encodes two-pass so the result lands under the target rather than near it.
Is there a file size limit?
No limit we impose, but a browser tab is bounded by WebAssembly's ~2 GB of memory, and a re-encode needs roughly three times the file's size free. Files up to a few hundred MB are comfortable. Above about 1 GB, the iPhone app is the better tool.
Is there a watermark?
No. No watermark, no logo, no intro frame, no account, and no upload cap to unlock by paying. The output is your video, compressed.
Which format should I compress to?
MP4 with H.264 video and AAC audio, unless you have a specific reason not to. It plays on effectively everything. H.265 gives you a smaller file at the same quality but encodes much slower here and is refused by some uploaders and older devices.
Compressing on a phone?
The iPhone app does this on the device, with the hardware encoder.