Video Compressor
Shrink video file sizes while keeping them looking good. Three compression levels to choose from.
Drop your video here
or click to browse
How the compression works
This re-encodes your video with H.264 at a lower quality target, in your browser, using ffmpeg compiled to WebAssembly. Nothing is uploaded.
The three presets are constant-rate-factor values. Light is -crf 23 at the fast x264 preset, Medium is -crf 28 at medium, Heavy is -crf 33 at medium. CRF is a quality target rather than a size target: the encoder spends whatever bitrate it needs to hit that quality, so the output size depends on how hard your footage is to compress. A static screen recording will shrink dramatically at any preset; handheld footage of moving leaves will not.
Each step of about 6 in CRF roughly halves the file size. That is why Heavy is not simply three times smaller than Light.
Settings and limits
- Max input500 MB
- Core25 MB, once
- Threads1
More detail
Which preset to pick
- Light. Visually indistinguishable from the source on almost anything. Use it when you just need to get under an upload limit.
- Medium. A visible but unobtrusive drop on detailed footage, still fine for screen recordings and talking heads. This is the sensible default.
- Heavy. Obvious softening and some blocking on motion. Worth it when the alternative is not being able to send the file at all.
- Resolution. Independently of the preset you can scale down to 1080p, 720p or 480p. On an oversized source this saves more than any CRF change, because you are removing pixels rather than approximating them.
- Audio. Re-encoded to AAC at 128k, or dropped entirely if you do not need it. Stripping the audio from a long screen recording is often a quick win.
What to expect
Compression is lossy and it is not reversible. Re-compressing an already-compressed file compounds the damage, so start from the highest quality source you have rather than from something you already shrank.
It is single-threaded WebAssembly, so this is slower than the ffmpeg you would run on your own machine. A short clip is quick; a long 4K source will take real time and pin a core while it works. Input is capped at 500 MB, and browser memory is often the tighter limit.
If the goal is a smaller file rather than a smaller video, trimming first usually beats compressing harder. Thirty seconds at Light will almost always look better and weigh less than three minutes at Heavy.
Questions
Does the video get uploaded?
No. ffmpeg runs as WebAssembly in the page. The only network request is the one-time fetch of the ffmpeg core from a CDN.
Can I pick a target file size?
Not directly. The presets set a quality target, not a size target, so the result depends on the footage. If you need to hit a specific limit, start with Medium, check the output, and step up or down from there.
Why did my file barely get smaller?
Usually because it was already well compressed. A video exported from another tool at a similar CRF has little left to give. Re-encoding it will mostly just cost you quality, so check the source bitrate before assuming there is room.
What happens to the audio?
It is re-encoded to AAC at 128k, which is transparent enough for speech and fine for most music. There is also an option to remove the audio track completely, which is worth using on screen recordings where nobody is talking.