Video Compressor
Compress video files to reduce size while preserving quality. Supports MP4, WebM, and more. Free, no signup, and everything processes locally in your browser.
Drag & drop a video or
Supports MP4, MOV, AVI, WebM, MKVCompressed Video
Understanding the CRF knob
Behind the scenes this tool calls FFmpeg (compiled to WebAssembly) and runs the H.264 encoder in "Constant Rate Factor" (CRF) mode. CRF is a single number from 0 to 51 that controls quality. 0 is lossless, 51 is unwatchable. The three presets map to: Light = CRF 28, Medium = CRF 32, Heavy = CRF 38. Each +6 on the CRF scale roughly halves the bitrate. That's why moving from Light to Heavy can shrink a file by 4–8× on most content.
CRF is smarter than "70% quality" because the encoder decides bitrate per‑frame based on complexity. A static talking‑head shot uses few bits; a fast‑moving action scene gets more. You don't have to guess a bitrate — you pick the quality you want and FFmpeg figures out the size.
Why resolution matters more than CRF for big savings
Dropping from 1080p to 720p deletes more than half the pixels per frame, which is a structural saving that CRF can't match. If the target is a WhatsApp share, an email attachment, or a forum upload, dropping resolution to 720p is almost always the right first move — viewers on a phone screen literally cannot see the difference. Keep 1080p only when the video is going to be projected or viewed fullscreen on a desktop.
Common targets
- Email attachment (most providers cap around 25 MB) — Heavy + 720p or 480p.
- WhatsApp (16 MB before it compresses for you) — Medium + 720p or Heavy + 1080p.
- Discord non‑Nitro (10 MB) — Heavy + 480p for anything over a minute.
- Portfolio upload — Light + keep original resolution.
The trade with browser-based compression
Running FFmpeg in WebAssembly is roughly 2–4× slower than native FFmpeg and uses your CPU rather than a GPU. For a ten‑minute source video, expect to wait 5–20 minutes depending on your machine. It also holds the input in memory, so huge files (over a few hundred MB) may crash the tab. If you compress videos often, installing FFmpeg and running ffmpeg -i input.mp4 -c:v libx264 -crf 28 -vf "scale=-2:720" -c:a copy out.mp4 locally will be faster and more reliable.
Privacy
The video file never leaves your browser. FFmpeg.wasm reads the file from a blob URL, processes it in a virtual filesystem inside the tab, and writes the result back out. No upload, no server.