Drop video files here
MP4, WebM, MOV, MKV · up to 200 MB each · 60 seconds max
Converter not loaded yet — loads (~31 MB) on your first convert, from this site only
🔒 Privacy proof — nothing uploads
Encoding runs on your device with ffmpeg.wasm (single-thread core, vendored on this site). Your files are never sent to any server; the only network requests on this page are the site's own analytics (Google Analytics and a Cloudflare beacon), which load when the page opens and never see your files. The converter core (~31 MB) is fetched in two parts from this site once, on your first convert, and then runs locally.
Network requests during processing: 0 (zero — as it should be)
Verify it yourself in DevTools
- Open DevTools (F12 or Ctrl+Shift+I) → Network tab.
- Reload the page, then convert a video. Watch the request list: after the initial page assets (and the one-time core download on first convert, both from this site), no requests to any other site appear while it converts. (The page's own analytics load once when the page opens — before you start — and never touch your files.)
- Go offline (DevTools → Network → Offline) after the converter has loaded once — conversions still work.
- The counter above counts every request to another site made during processing. It should stay at 0 while converting.
Your files are never sent anywhere, never stored, and never leave your device. Closing the tab deletes everything.
Honest limits — read before converting
- Short clips only: 60 seconds maximum. Browser encoding is single-threaded and slow — a 10 s 720p clip is quick; a 60 s 1080p clip can take several minutes and hundreds of MB of tab memory.
- No 4K, no long videos: 4K footage and anything over a minute belong in a desktop encoder (HandBrake, Shutter Encoder). This tool will refuse them rather than freeze your tab.
- Targets are best-effort: a very detailed or noisy clip may not fit 8 MB even at the smallest settings (480p, CRF 51). When that happens you get the smallest file possible, labelled honestly, with the exact overshoot.
- One file at a time: batches convert sequentially so the tab does not run out of memory. Audio is re-encoded to AAC 96 kbps; video with no audio track stays silent.
- Keep the tab in the foreground: background tabs get throttled by the browser and encoding slows to a crawl.
How to compress a video to a target size without uploading it
Most “free” video compressors upload your clip to a server, queue it, and hand back a file of whatever size their preset produced. If you need a video to fit an exact limit — Discord’s 8 MB free cap, a 25 MB email attachment — you need a tool that aims at the number. This one does, and it does it without your video ever leaving your device.
1. Pick the destination, not a quality slider
Choose Discord 8 MB, Discord 25 MB, Email 25 MB, or a custom size. The target is the goal; quality and resolution are whatever it takes to hit it.
2. Drop your clip in
MP4, WebM, MOV, or MKV, up to 200 MB and 60 seconds. The tool reads the clip’s duration and resolution, then works out a bitrate budget: target size ÷ duration, minus a small allowance for audio.
3. It searches for the size — honestly
The encoder (ffmpeg.wasm, running in your browser) makes a first pass at a quality level estimated from the budget, measures the result, and adjusts: a higher CRF number means a smaller file, a lower one means better quality. If quality alone cannot reach the target, it steps the resolution down (1080p → 720p → 480p) and tries again — up to five passes. You see each pass and its settings.
4. Download an MP4 that fits
Output is always MP4 (H.264 + AAC) with faststart, so it plays everywhere and streams instead of downloading fully before playback. The result line tells you the achieved size versus the target — if the target was unreachable, it says so and gives you the smallest file it could make rather than pretending it succeeded.
Tips for the smallest file
- Trim first. Cutting 10 seconds off a clip helps more than any quality setting — size scales with duration.
- Expect a quality trade-off at 8 MB. A 60-second clip at 8 MB is about 1 Mbps — fine for a phone screen, soft on a big monitor. A 10-second clip at 8 MB looks far better.
- Still too big? Try a larger target, shorten the clip, or use a desktop encoder for the hardest cases.
Frequently asked questions
How do I compress a video to exactly 8 MB for Discord?
Drop your clip here, pick the “Discord 8 MB” preset, and the tool encodes it with ffmpeg.wasm in your browser, adjusting quality and resolution over several passes until the MP4 lands at or under 8 MB. If even the smallest settings cannot reach 8 MB, it tells you honestly and gives you the smallest file it could make.
Does this video compressor upload my video?
No. All encoding happens on your device with ffmpeg.wasm, downloaded from this site once (about 31 MB, in two parts) and then run locally. Your files are never sent to any server; the only network requests on this page are the site's own analytics (Google Analytics and a Cloudflare beacon), which load when the page opens and never see your files. You can verify it in your browser's DevTools Network tab — the page shows a live counter of requests during processing, which stays at zero while a video converts.
What is the maximum video length I can compress here?
60 seconds, and short clips work best. Browser encoding is single-threaded and holds the whole clip in tab memory, so a 10–30 second clip converts in a reasonable time while a 60-second 1080p clip is slow and memory-heavy. Long videos and 4K footage are out of scope — use a desktop encoder such as HandBrake for those.
What video formats can I upload, and what do I get back?
You can drop MP4, WebM, MOV, or MKV files (up to 200 MB each, 60 seconds max). You always get back an MP4 (H.264 + AAC) with faststart enabled, so it plays and streams everywhere.
Why is browser video compression slow?
The encoder runs as WebAssembly in a single thread inside your browser tab — roughly 5–15× slower than a native desktop encoder — and it may run several passes to hit your exact target size. A 10-second 720p clip typically takes well under a minute; a 60-second 1080p clip can take several minutes. Keep the tab open and in the foreground while it works.
What if my video cannot be made small enough?
The tool reports the result honestly: if the smallest settings (480p, CRF 51) still overshoot your target, it downloads the smallest file it could make, labels it “best effort”, and tells you exactly how far over target it is. Pick a larger target, trim the clip shorter, or use a desktop encoder for very demanding clips.