Processed entirely on your device — nothing is uploaded
How to use the video compressor
- 1Drop a video into the box above.
- 2Set the quality with the CRF slider — lower numbers mean better quality and bigger files.
- 3Optionally downscale the resolution and reduce the audio bitrate.
- 4Press Compress video, then compare the result before downloading.
Understanding CRF
CRF stands for Constant Rate Factor, and it is the quality dial for H.264. Rather than targeting a fixed bitrate, it targets a fixed perceptual quality and spends whatever bits that requires — so a static scene uses few and a complex action scene uses many. This produces better results than fixed-bitrate encoding at the same average size.
The scale runs from 0 (lossless, enormous) to 51 (unwatchable). CRF 18 is generally considered visually indistinguishable from the source. 23 is the default most tools use and looks good. 28 is the sweet spot for making something small enough to email while remaining perfectly watchable. Beyond 32, blocking artefacts become obvious in motion.
A useful rule of thumb: each increase of 6 in CRF roughly halves the file size. Going from 23 to 29 will approximately halve your video, which is often enough on its own.
Resolution is the other big lever
Bitrate requirements scale with pixel count, so resolution is at least as powerful as CRF. Dropping 1080p to 720p removes 56% of the pixels and typically cuts the required bitrate by about half at the same perceptual quality.
Whether that is acceptable depends entirely on where the video will be watched. On a phone screen, 720p and 1080p are difficult to tell apart. On a large monitor or a television, the difference is obvious.
For anything destined for a messaging app or a social feed — where it will be viewed on a phone, and re-encoded by the platform anyway — downscaling to 720p costs you almost nothing visible and saves a great deal.
The preset, and what it trades
The preset controls how much effort the encoder spends looking for savings. It does not change the target quality; it changes how efficiently that quality is achieved.
Ultrafast produces a file perhaps 30–50% larger than slow at identical CRF, but finishes far sooner. Since this is running single-threaded in a browser tab, that difference matters more here than it would on a desktop.
Very fast is a reasonable default for browser encoding. Choose medium or slow only when the file size genuinely matters more than your time, and be prepared to wait — a several-minute video on the slow preset can take a long while.
Realistic expectations for browser encoding
Video encoding is among the most computationally demanding things a normal person's computer does, and doing it in WebAssembly on a single thread is slower still. Budget roughly one to three minutes of processing per minute of footage on a modern laptop.
The whole file is held in memory while it is processed, so very large inputs may exhaust a browser tab. If a long video fails, trim it into sections first, compress each, and rejoin them.
Keep the tab focused while it runs. Browsers aggressively throttle timers and workers in background tabs, and a backgrounded encode can slow to a crawl or stall entirely.
Frequently asked questions
What CRF value should I use?
28 is a good default for sharing — clearly watchable and substantially smaller. Use 23 to stay close to the original, and avoid going past 32.
How much smaller will my video get?
It depends on the source bitrate, but a phone video at CRF 28 with a drop to 720p commonly ends up a quarter to a tenth of its original size.
Why is compression so slow?
Encoding runs single-threaded in WebAssembly. Expect roughly one to three minutes per minute of footage, and keep the tab in the foreground.
Should I lower the resolution too?
For anything watched on a phone, yes — 720p is difficult to distinguish from 1080p on a small screen and roughly halves the bitrate needed.
Is there a file size limit?
No artificial one, but the file is processed in memory. Very large videos may exhaust the tab; trim them into sections if so.
Is my video uploaded?
No. ffmpeg runs in your browser and the file never leaves your device.