FFMPEG
ToolsConverterBlogAboutContact

// Tools / Video compressor

Compress MP4 for WhatsApp

Shrink an MP4 to fit a strict upload limit — WhatsApp's 16 MB, Discord's 25 MB, an email cap — without sending the file to anyone. The compression runs in this browser tab. Pick a preset, drop the file, get a smaller MP4 back.

// Video compressor

LOADING ENGINE

Initialising…

// Long read

How video compression actually works

A practical guide to why an MP4 is "too big," why squeezing it smaller is more than just zipping it, and how to pick settings that hit a size target without making the clip look like it was fished out of a 2007 forum.

The reason WhatsApp keeps rejecting your video

WhatsApp enforces a hard ceiling on attachments — historically around 16 megabytes, occasionally higher in certain regions. A modern phone shooting at 1080p and 30 frames per second writes roughly fifteen megabytes for every minute of footage at default quality settings, which means anything past a minute is already over. Discord's free tier caps at 25 megabytes; Gmail's attachment ceiling is also 25; many corporate SMTP servers cap lower. The numbers vary, but the experience is the same: you record something worth sending and the upload bounces.

The fix is not better wifi; it is a smaller file. Video gets smaller by being re-encoded with a more aggressive compression budget — the same picture, told with fewer bits. That is what this tool does.

How browser-based compression works

The compressor above is FFmpeg compiled to WebAssembly running inside this page. When you drop a file in, the browser reads it into memory, hands it to the FFmpeg runtime alongside an argument string the tool builds from your settings, and waits for the re-encoded output. The bytes never make a network request. You can confirm this in DevTools: open the Network tab, run a compression, watch nothing leave.

The first visit downloads about thirty megabytes of FFmpeg engine and caches it; subsequent visits are instant. The conversion itself runs at roughly fifty to eighty percent of native FFmpeg speed, bounded by your CPU. If you are coming from the desktop version of FFmpeg, the in-browser experience is the same engine with the same flags — just executed through WebAssembly. The FFmpeg explainer walks through the architecture if you want the long version.

Target size vs target quality — which mode to use

Compression tools usually expose two control schemes that look interchangeable but are not.

Target size mode picks a video bitrate so that bitrate × duration adds up to your goal in megabytes. You give it a number; you get back a file at (close to) that number. Quality varies — a long static talking-head can hit the target at high quality, while a short action clip at the same target will look rougher because there is more visual information to compress in less time. This is the mode to use when you have a hard upload ceiling. It is what the WhatsApp, Discord, and email presets do.

Target quality mode picks a Constant Rate Factor (CRF) — a perceptual-quality dial — and lets the encoder spend whatever bitrate it needs to maintain that quality. Calm scenes get fewer bits, complex scenes get more. CRF 18 is visually indistinguishable from the source on any consumer screen; CRF 23 is the long-standing default; CRF 28 is noticeably smaller with mild compression artifacts; above CRF 32 the file is small and it looks it. Use quality mode when you care about how the clip looks and are willing to live with whatever file size results.

Resolution, frame rate, and bitrate — the three real levers

Once the codec is chosen (H.264 in this tool, because of universal playback compatibility), file size is governed by three numbers.

Resolution. The single most powerful lever. A 4K source has four times the pixels of 1080p, and a 1080p source has four times the pixels of 540p. Halving width and height takes file size down by roughly seventy-five percent at equivalent visual quality. The compressor has a max-width control for exactly this reason: if your source is 4K from a phone and you are sharing to a chat thread, drop the width to 1280 or 1920 and you have done most of the work before the codec runs.

Bitrate. The compressed size of each second of video. Doubling bitrate roughly doubles the file. Below a certain floor, the encoder cannot represent the picture well and visible blocking appears. The tool calculates a sensible bitrate from your target size, but for context: a 1080p clip at 2 megabits per second looks acceptable; at 1 megabit per second it looks compressed; at 500 kilobits per second it looks bad.

Frame rate. Less impactful than the first two, but still real. A 60 fps video stores twice as many frames as a 30 fps video — modern codecs predict similar adjacent frames efficiently, so the size difference is closer to thirty percent than fifty. If you have a 60 fps phone clip that is just talking heads, dropping to 30 fps is a free win the encoder will happily take. The compressor does not currently expose a frame-rate control — that lives in the MP4 converter via custom args.

What about audio

Audio is almost always a small fraction of total file size. At 96 kilobits per second AAC, a one-minute clip uses about 720 kilobytes of audio — usually well under five percent of the file. The audio bitrate control is there in case you are compressing a voice memo with no music and want every spare byte going to video; for normal clips, the default is fine.

File size vs quality trade-offs in practice

Some honest reference points for a typical 1080p phone clip encoded with this tool at the WhatsApp 16 MB preset, with the source kept at original resolution:

  • Under 30 seconds. Output looks essentially identical to the source. Nobody will notice it was compressed.
  • 30 seconds to 1 minute. Quality remains good; subtle softness in motion-heavy scenes is the only tell.
  • 1 to 2 minutes. Noticeable softness in fast-motion scenes; static scenes still look clean.
  • 2 to 4 minutes. Visible compression artifacts. Consider lowering the max width to 1280 to give the encoder more bits per pixel.
  • Over 4 minutes. The 16 MB target is genuinely tight. Drop resolution to 720p, accept some softness, or trim the clip before compressing.

For longer or more demanding sources, the better strategy is to trim first. The WhatsApp compression guide on the blog goes deeper into preset choices and edge cases.

Frequently asked questions

Why does the file come out a little over the target?

Single-pass bitrate encoding is approximate — codecs vary per-frame bit usage based on content. The tool builds in a small safety margin, but if you need a hard guarantee under a limit, target a megabyte or two below it.

Can I compress without re-encoding?

No. Compression is re-encoding. The lossless container-swap mode on the MP4 converter does not change file size meaningfully — it changes the wrapper but keeps the encoded video stream identical.

Does this preserve the original audio?

Audio is always re-encoded to AAC at the bitrate you pick (default 96 kbps). If you need lossless audio preservation, this is not the right tool — use the MP4 converter with custom args.

Why H.264 and not H.265 or AV1?

Compatibility. H.264 plays everywhere; H.265 plays on modern but not older devices; AV1 still requires recent hardware. For files destined for WhatsApp, Discord, or email — where the recipient may be on anything — H.264 is the safe choice. For a deeper look at codecs, see video codecs explained.

The compressed file is bigger than the source. Why?

Your source is probably already heavily compressed, and you asked for a higher-quality target than it was originally encoded at. Re-encoding lossy video at higher quality cannot recover detail that the first encoder discarded; it just stores the already-compressed result with more bits. Pick a smaller target size or a higher CRF value.

What is the FFmpeg command behind the WhatsApp preset?

Approximately: ffmpeg -i in.mp4 -c:v libx264 -b:v <calculated>k -maxrate <calc*1.2>k -bufsize <calc*2>k -preset veryfast -c:a aac -b:a 96k -movflags +faststart out.mp4. The bitrate is computed from your target size and the clip duration. Visible in the log panel while compression runs.

Where can I find other browser-based tools?

On the tools hub. The MP4 converter handles container and codec changes; the video-to-GIF tool produces high-quality GIFs from clips.

// Navigate

ConverterAll ToolsBlog

// Tools

MP4 ConverterCompress for WhatsAppMOV → MP4Video → GIF

// About

AboutContactPrivacyTerms

© 2026 FFMPEG CONVERTER

POWERED BY FFMPEG WEBASSEMBLY