🎬
Video Compressor
Reduce video file size in your browser — free, instant, private. No uploads to any server.
Upload a Video
🔒
Your video is compressed entirely in your browser using WebAssembly — nothing is uploaded to any server.
Drag & drop your video here
or click to browse · MP4, MKV, MOV, AVI, WebM & more · max 500 MB
⚠️
Large file detected ().
Compression will take several minutes and requires significant browser memory.
Files over 400 MB may cause browser memory errors on low-RAM devices.
⚠
⚠
Compression failed:
Compression Settings
Loading FFmpeg engine scripts from CDN…
Downloading FFmpeg WASM binary (~25 MB) — first run only, your browser caches this.
Initializing FFmpeg engine…
Compressing video — keep this tab active for best performance.
⏳Stopping compression, please wait…
✅ Compression Complete
Download
⬇ Download
💡
The file was already well-compressed — try Max Compression quality preset
or a lower output resolution for a bigger reduction.
How It Works
📤
1. Upload
Select any video file up to 500 MB.
⚙️
2. Choose settings
Pick quality, resolution, and output format.
🔄
3. Compress
FFmpeg runs in WebAssembly inside your browser.
💾
4. Download
Save the compressed video to your device.
Category
🔧 media file converterSupported Formats
MP4
MKV
MOV
AVI
WebM
FLV
WMV
3GP
M4V
Any format FFmpeg can decode is accepted.
MP4 vs WebM
| MP4 | WebM | |
|---|---|---|
| Codec | H.264 | VP9 |
| Compression | Good | Better |
| Compatibility | Universal | Modern browsers |
| Best for | Sharing/email | Web embeds |
Quality Presets
- ◼Max Compress — biggest size reduction, noticeable quality drop at high motion
- ◼Balanced — good trade-off, most videos look fine (recommended)
- ◼High Quality — small quality loss, moderate compression
- ◼Near Lossless — minimal quality loss, largest output file
Tips
- •First run downloads the FFmpeg engine (~25 MB, one time). Subsequent compressions start instantly.
- •Lowering resolution (e.g. 1080p→720p) often reduces file size more than quality settings alone.
- •Keep the browser tab active during compression for best performance.
- 🔒Your video never leaves your device — compression runs locally.
Related Tools
How the compression works in your browser
The engine is FFmpeg built to WebAssembly, loaded from a CDN when you first use the tool. Once the engine is ready your video is written into a virtual in-memory filesystem, transcoded, and read back as a downloadable file. Nothing is transmitted to a server, which is why the first run pauses to initialise the engine and why performance depends on your own processor.
Quality is controlled by CRF, the constant rate factor. Instead of targeting a fixed bitrate, the encoder targets a constant perceived quality and spends whatever bits each scene needs. Lower CRF means higher quality and a larger file. For MP4 output the presets map to CRF 18 for Near Lossless, 23 for High Quality, 28 for Balanced and 35 for Max Compress. VP9 uses a different scale, so the WebM presets are 20, 27, 33 and 41 respectively.
MP4 output encodes video with libx264 using the fast preset. WebM output uses libvpx-vp9 with the bitrate set to zero so CRF alone governs quality, paired with Opus audio. Choosing a lower output resolution adds a scaling filter that reduces the frame height while preserving the aspect ratio.
Quality is controlled by CRF, the constant rate factor. Instead of targeting a fixed bitrate, the encoder targets a constant perceived quality and spends whatever bits each scene needs. Lower CRF means higher quality and a larger file. For MP4 output the presets map to CRF 18 for Near Lossless, 23 for High Quality, 28 for Balanced and 35 for Max Compress. VP9 uses a different scale, so the WebM presets are 20, 27, 33 and 41 respectively.
MP4 output encodes video with libx264 using the fast preset. WebM output uses libvpx-vp9 with the bitrate set to zero so CRF alone governs quality, paired with Opus audio. Choosing a lower output resolution adds a scaling filter that reduces the frame height while preserving the aspect ratio.
Worked example: a 180 MB 1080p clip
Take a 180 MB clip recorded at 1920 by 1080 and select the Balanced preset with 720p output and MP4 format.
The resolution change alone removes a large share of the data. A 1080p frame holds 1920 x 1080 = 2,073,600 pixels, while a 720p frame holds 1280 x 720 = 921,600. That is a 55.6 per cent reduction in pixels per frame before the encoder's own work begins.
On top of that, Balanced applies CRF 28 to the H.264 encode, a noticeably coarser quality target than most camera and screen-recorder output. A clip of this kind typically lands around 25 MB, which the tool reports as a saving of (1 - 25 / 180) x 100, about 86 per cent.
Choosing WebM instead at the equivalent Balanced setting of CRF 33 generally produces a smaller file again for similar perceived quality. Actual results vary enormously with content: a static screen recording compresses to a fraction of a handheld outdoor shot with moving foliage, because there is far less new information in each frame. Always check the reported sizes rather than assuming a ratio.
The resolution change alone removes a large share of the data. A 1080p frame holds 1920 x 1080 = 2,073,600 pixels, while a 720p frame holds 1280 x 720 = 921,600. That is a 55.6 per cent reduction in pixels per frame before the encoder's own work begins.
On top of that, Balanced applies CRF 28 to the H.264 encode, a noticeably coarser quality target than most camera and screen-recorder output. A clip of this kind typically lands around 25 MB, which the tool reports as a saving of (1 - 25 / 180) x 100, about 86 per cent.
Choosing WebM instead at the equivalent Balanced setting of CRF 33 generally produces a smaller file again for similar perceived quality. Actual results vary enormously with content: a static screen recording compresses to a fraction of a handheld outdoor shot with moving foliage, because there is far less new information in each frame. Always check the reported sizes rather than assuming a ratio.
Choosing settings, and what to expect from the process
Start with Balanced and the resolution that matches where the video will be watched. Anything embedded on a web page or shared in a chat rarely needs more than 720p, and 480p is fine for a screen recording of a user interface. Dropping the resolution is usually a bigger and safer saving than pushing the quality preset to Max Compress, which visibly degrades motion and fine detail.
Pick MP4 when the file must play anywhere, including older phones, televisions and desktop media players, since H.264 is the most universally supported codec. Pick WebM when the destination is a modern browser and file size is the priority.
Be realistic about speed. Encoding in WebAssembly is slower than native FFmpeg, so a long or high-resolution video can take several minutes and will keep your processor busy. Leave the tab open while it works, and prefer a laptop on mains power for large files.
Two limits are worth knowing. Re-compressing a file that is already heavily compressed yields little and costs quality, since the detail has already been discarded. And the audio track is re-encoded too, so keep the original file if you may need it later.
Pick MP4 when the file must play anywhere, including older phones, televisions and desktop media players, since H.264 is the most universally supported codec. Pick WebM when the destination is a modern browser and file size is the priority.
Be realistic about speed. Encoding in WebAssembly is slower than native FFmpeg, so a long or high-resolution video can take several minutes and will keep your processor busy. Leave the tab open while it works, and prefer a laptop on mains power for large files.
Two limits are worth knowing. Re-compressing a file that is already heavily compressed yields little and costs quality, since the detail has already been discarded. And the audio track is re-encoded too, so keep the original file if you may need it later.
Frequently Asked Questions
No. The tool runs FFmpeg compiled to WebAssembly inside the page, so decoding and re-encoding happen on your own device and the file never leaves it. Only the engine's script and WebAssembly module are fetched from a CDN. That makes it suitable for confidential recordings, client footage and anything you would not want on a third-party server.
CRF stands for constant rate factor. Rather than fixing a bitrate, the encoder aims for a consistent perceived quality and allocates bits where each scene needs them. Lower numbers mean better quality and larger files. The MP4 presets here use CRF 18, 23, 28 and 35, while VP9 in WebM uses its own scale of 20, 27, 33 and 41.
Choose MP4 with H.264 when compatibility matters, as it plays on virtually every phone, television, editor and media player. Choose WebM with VP9 when the smallest possible file is the priority and the audience is on modern browsers. At equivalent quality settings, VP9 generally produces a smaller file than H.264 for the same footage.
Because the encoding runs on your own processor through WebAssembly, which is slower than native FFmpeg. Duration, resolution and frame rate all multiply the work, so a long 4K clip can take several minutes. Keep the tab open and in the foreground, close other heavy applications, and reduce the output resolution to speed things up.
Up to 500 MB per file, and any format FFmpeg can decode is accepted as input, including MP4, MOV, AVI, MKV and WebM. Because everything runs in memory in your browser, very large files also depend on available RAM, so a device with limited memory may struggle well before that ceiling is reached.