Skip to content
Audio & Video Tools

Video Compressor

Shrink MP4 video file size by re-encoding at a lower bitrate, so it is easier to email, message or upload.

Drag & drop your file here, or browse

Accepted: .mp4,video/mp4 — Output: .mp4

Everything runs locally in this browser tab. Nothing is uploaded to any server.

How to use this tool

StepWhat to doDetails
1Add one MP4 fileSelect the video you want to shrink.
2Choose a compression level"Light" keeps quality close to the original; "Strong" prioritizes the smallest possible file size.
3Click "Compress Video"FFmpeg (WebAssembly) re-encodes the video locally at a lower bitrate.
4DownloadCompare the new file size shown next to the download button.

The video finishes recording, you go to send it, and the app just won’t cooperate. WhatsApp silently re-compresses anything over a certain size until it looks like a smear of pixels. Gmail refuses attachments past 25MB outright. Discord caps uploads for anyone without a paid subscription. None of these platforms actually check whether your video is “too big” in any meaningful sense — they check a number, and if your file is over it, it’s rejected or mangled, regardless of how much those extra megabytes mattered to you. This tool re-encodes an MP4 at a lower bitrate so the file gets smaller before you ever try to send it, on your terms rather than whatever compression the platform applies on its own.

What “compressing” a video actually means here

Video compression works by giving the encoder a target quality level and letting it decide, frame by frame, how much detail to keep. This tool uses H.264, still the most widely compatible video codec around, with a quality control called CRF — constant rate factor. Lower CRF numbers tell the encoder to preserve more detail, which produces a larger file; higher numbers tell it to compress more aggressively, accepting more quality loss in exchange for a smaller file. You don’t need to think in those terms directly, though — the three levels offered here (Light, Medium, Strong) map to specific CRF values under the hood, running from a gentler setting that stays close to the original quality up to an aggressive one that prioritizes getting the file as small as possible.

Where you land on that scale depends entirely on what you’re compressing for. If you just need to shave a video down enough to clear an email attachment limit, Light is often plenty. If you’re trying to fit a long phone recording into a messaging app’s strict cap, Medium or Strong will get you there, at the cost of visibly softer detail, especially in fast motion or busy scenes.

The everyday version of this problem

Sending a video of a birthday party or a family event to relatives over WhatsApp is maybe the single most common trigger — phone cameras now record at resolutions and bitrates that produce huge files almost by default, and messaging apps were never built to comfortably handle multi-hundred-megabyte attachments. Emailing a video walkthrough or a bug-report screen recording to a coworker runs into the same wall, especially with attachment limits that haven’t meaningfully changed in years. Uploading video to a CMS, a forum, or an application portal with its own size cap is another regular case — a lot of platforms quietly reject anything over a certain size without much explanation of why the upload failed.

Screen recordings deserve a specific mention here, because they compress differently than handheld footage. A screen capture of a static desktop with occasional cursor movement has very little actual motion for the encoder to work with, so it tends to compress down hard with barely any visible quality loss even at Medium or Strong. Handheld phone video, full of camera shake and motion, is the opposite case — it holds onto detail less gracefully at higher compression levels, so it’s worth trying Light first and only going stronger if the file is still too big.

What you’ll notice while it runs

Re-encoding a video is genuinely more computational work than most of the other conversions on this site — it’s not just repackaging data, it’s analyzing and rebuilding every frame — so it takes noticeably longer for a long clip than, say, trimming an audio file or converting an image. A short clip finishes in a matter of seconds; a fifteen-minute video takes proportionally longer. Once it’s done, the download button shows you the percentage saved compared to the original, so you can see immediately whether the compression level you picked actually got you where you needed to be, and try again at a stronger setting if not.

Running locally, same as everywhere else on this site

This tool uses the same local, WebAssembly build of FFmpeg as the rest of the audio and video conversion tools here — the video is read, re-encoded, and handed back to you as a download entirely within your browser, with nothing uploaded to a server in the process. For a video you’d rather not send to a random online compressor for privacy reasons, that matters. The one honest caveat is that this engine is a real download, roughly 30MB, fetched once the first time you use any audio or video tool in a session; that first conversion takes a bit longer while it loads, and everything afterward, on this tool or any other, runs faster because the engine stays cached for the rest of your visit.

There’s no getting around the tradeoff at the center of this: a smaller file means a lower-quality one, full stop. But when the alternative is a message that won’t send at all, or a platform’s own automatic compression making that decision for you with zero control over the outcome, picking your own compression level and doing it before you hit send is usually the better deal.