Video Compressor
Video Compressor — Free, in Your Browser
Last updated:
Drop a video, pick a quality or a target size, get a smaller file. Compression happens locally — your video never leaves your device.
We recommend files under 100 MB. Larger files work but compression is slow in a single-threaded browser tab.
23 = visually lossless · 28 = smaller files, slight quality loss · 32 = much smaller, noticeable loss
We'll calculate the bitrate to hit this size (audio 128 kbps reserved).
Recording too long? Pullsy's free tier records up to ≈10–14 minutes at 1080p — fits in the 50 MB cap. Open the recorder →
Drop a video, pick a quality or a target size, get a smaller file. Compression happens locally — your video never leaves your device.
How it works
Pick your video
Drop a MP4, MOV, WebM, or any other video file. We support any input that ffmpeg can read.
Pick a mode: quality or target size
Quality mode uses a CRF slider (18 = max quality, 32 = max compression). Target size mode calculates the bitrate needed to hit a specific MB output, with 96 kbps audio reserved.
Click 'Load converter' and download
ffmpeg.wasm loads on first use (~31 MB) and re-encodes the file. The output keeps H.264 + AAC so it plays in any modern player.
Quality mode vs target size mode — which should I use?
Quality mode (CRF slider) is the right default — it gives consistent visual quality across the whole video. Target size mode is for the cases where you have a hard limit (a 25 MB email attachment, a 50 MB upload cap). Target size mode may produce inconsistent quality in complex scenes because the bitrate is fixed; quality mode lets ffmpeg spend more bits on hard scenes and fewer on simple ones.
What CRF value should I use?
For screen recordings, 26 is the sweet spot — visually lossless for the human eye at chat size, with a 30–50% size reduction vs the original. For camera footage, 23 is visually lossless. For drafts and 'good enough' copies, 28 is fine. Above 30, quality loss becomes visible on most content. Below 20, the file gets large fast with no visible improvement.
When compression saves the day
Compression is the right call for any of these: Email attachment limits. Gmail caps attachments at 25 MB. A 2-minute 1080p screen recording is often 80–150 MB. Compress to 20 MB and the recipient gets the video without a Google Drive round-trip. Chat apps with upload caps. Slack caps at 1 GB per file but renders slow above ~50 MB. Discord caps at 25 MB on the free tier. A 480p 8 MB MP4 plays inline in both. Mobile data. A 50 MB video on cellular is a real cost. A 8 MB compressed version is fine. Storage. Multiplied across a year of recordings, the savings are real. 50 recordings × 50 MB = 2.5 GB; same 50 recordings at 10 MB each = 500 MB.
How the compressor works
We use ffmpeg.wasm 0.12 with libx264 (H.264) for video and AAC for audio. Single-threaded (`-preset ultrafast`) because the WASM build is single-threaded — multi-threaded encoding would require SharedArrayBuffer and COOP/COEP headers, which add complexity for marginal speedup in a browser tab.
In quality mode: `ffmpeg -i input.mp4 -c:v libx264 -preset ultrafast -crf
Privacy and how we handle your data
We do not upload your video to any server. Compression happens entirely in your browser via ffmpeg.wasm. Your video never leaves your device. The output file is a Blob URL pointing at in-memory data. The only network traffic is the initial 31 MB ffmpeg.wasm download (cached for the rest of the session).
Will compression reduce quality visibly?
At CRF 23, no — visually lossless for screen recordings and most camera footage. At CRF 26, the difference is visible only if you pixel-peep; on a phone or laptop screen at normal viewing distance, the original and the compressed file look identical. At CRF 30+, the difference becomes visible — blocky edges in gradients, soft text, ringing around high-contrast edges. The right range for 'good enough' drafts is 26–28.
What about audio?
Audio is re-encoded to AAC at 96 kbps. For voice recordings this is fine (voice compresses well). For music or video with rich audio, bump to 128 kbps. We default to 96 kbps to keep the file size low for the common case (screen recordings with voice).
How long does compression take?
For a 50 MB video on a modern laptop, expect 1–3 minutes. Compression is single-threaded in the browser (ffmpeg.wasm) — a 4-core CPU does not help. The conversion runs in a Web Worker so the page stays responsive.