Compress Video

Make a video small enough to send, without uploading it anywhere. The encoder runs in your browser, on your machine.

Quality, not bitrate

Most compressors ask for a target bitrate or, worse, a target file size. Both are the wrong question. A bitrate is a promise to spend the same number of bits per second on every second of the video — on the static title card and on the hand-held pan across a forest alike. The title card gets bits it cannot use and the pan gets starved into a smear of blocks.

These settings pick a constant rate factor instead, which is a target for how good the result should look. Simple footage naturally uses fewer bits, complicated footage uses more, and the whole video comes out at a consistent quality. The file size falls out of that rather than being dictated to it, which is why the tool does not promise a number before it has done the work.

The three presets are six CRF points apart. That is roughly the interval at which the file halves, so each step down is a real change rather than a nudge.

Resolution is the other lever, and sometimes the only one

A video that has already been compressed — anything downloaded, re-shared, or run through another tool — is near its floor. No amount of re-encoding at the same resolution will help much, and each pass makes it slightly worse. When that happens the honest move is to reduce the frame size, which removes detail you were not going to see on a phone anyway.

The resolution options cap the shorter edge, because that is what “720p” means. A 1920×1080 landscape clip and a 1080×1920 portrait one are both 1080p, and a tool that capped the longer edge would shrink the portrait video to a third of the area you asked for. It also never upscales: asking for 720p on a 480p clip leaves it alone rather than blowing it up and spending bits inventing detail.

Why it is slower than a website that uploads

FFmpeg here is compiled to WebAssembly and runs inside the page, which costs several times the speed of a native build on a server built for the job. That is the trade: a server-side compressor is faster because it has a machine to itself — a machine that now has a copy of your video, a retention policy you did not read, and a free tier that watermarks the result.

Video is also the category where that matters most. People compress footage of their children, their homes, incidents they need to send to an insurer, drafts under embargo. None of it needs to visit a stranger’s disk to lose a few hundred megabytes.

Compress Video FAQ

Is my video uploaded to be compressed?

No, and this is the difference that matters for video. Every other compressor asks you to upload the file, which means your footage sits on someone else's disk, counts against a daily quota, and comes back watermarked or capped unless you pay. Here the encoder is FFmpeg compiled to WebAssembly, running in your browser on your own processor. The video never leaves the machine, and there is no size tier to buy.

Why does it take minutes rather than seconds?

Because your own computer is doing the encoding, and it is doing it in WebAssembly, which runs several times slower than a native encoder. A server-side tool feels faster because it has a machine dedicated to the job — one that also has a copy of your video. The progress bar here is real, driven by FFmpeg's own frame counter, so you can see it working rather than guessing.

How much smaller will my file get?

It depends entirely on what the video already is. A phone recording is usually encoded at a generous bitrate and often halves or better at the Balanced setting with no visible difference. A clip that has already been through a compressor, or one downloaded from a streaming service, is close to its floor already — there the honest answer is that dropping the resolution is the only real lever left, and the tool says so rather than pretending.

What do the quality settings actually change?

They set x264's constant rate factor, which targets a consistent visual quality rather than a fixed bitrate. That matters: a fixed bitrate spends the same bits on a static slide as on a hand-held pan across a forest, starving the second and wasting them on the first. The three presets are six CRF points apart, which is roughly the interval at which the file size halves.

Why is the output always MP4?

H.264 video with AAC audio in an MP4 container is the one combination that plays everywhere — every phone, every browser, every messaging app, every editor. Compression is usually the last step before sending a file to someone, so the format that reaches them intact is the right default. The audio is re-encoded rather than copied for the same reason: MP4 accepts only a handful of audio codecs, and discovering the source's is not one of them after a five-minute encode is a far worse outcome than spending 128 kbit/s on it.

Is there a limit on file size?

Around 500 MB, and it is a real constraint rather than a sales tactic. The encoder holds the input, the output and its working buffers in a single 32-bit memory space, and past that ceiling the module aborts outright. Rather than let a tab die halfway through, oversized files are refused up front with an explanation. Trimming the video first often brings it under.