WikiPlus

Video Compressor

Compress MP4, WebM, and MOV videos in your browser. Pick low, medium, or high quality — no upload, no watermark, free forever.

Local processing
1.4s avg
4.8 out of 5 — based on 1,247 uses

By Sergio Robles — Founder

Drop a video here
or click to browse — MP4, WebM, MOV
MP4 · WebM · AVI
Your files are processed locally in your browser. We never upload or store your data.

What is Video Compressor?

Video Compressor shrinks any browser-playable video — MP4, WebM, MOV, MKV — to a much smaller file by lowering the resolution and video bitrate. Low quality drops to 480p at ~600 kbps (great for WhatsApp, email attachments, Discord uploads on free tier). Medium hits 720p at 1.5 Mbps (Instagram, Twitter, Slack). High keeps 1080p at 4 Mbps (LinkedIn, portfolio sites, Dropbox delivery). The re-encode happens entirely in your browser through the MediaRecorder API and the Canvas 2D pipeline — the source video never uploads, so unreleased ads, internal demos, confidential interview recordings, and private family clips stay on-device. Expect 50–80% size reduction on typical consumer camera output. Content creators ship tighter previews. Sales teams fit demos under 25 MB email limits. Remote workers skip the 'file too large' errors on Slack. Students drop assignment size before uploading to Canvas or Blackboard.

When should I use this tool?

  • Messaging app limits. WhatsApp caps video at 64 MB, Telegram at 2 GB, Discord free tier at 25 MB, Slack at 1 GB. A 4K phone recording routinely breaks the lower tiers — compressing to 720p Medium usually fits in under 25 MB per minute, so a three-minute clip slides through every mainstream chat platform without splitting.
  • Email attachments. Gmail and Outlook cap attachments at 25 MB. A 60-second raw iPhone 4K clip is ~350 MB. Low quality (480p) brings a minute down to ~5 MB, so a full three-minute demo fits. No dropbox-link dance, no account, no 'we could not send your message.'
  • Client previews. Video editors and motion designers send draft cuts to clients for feedback. Full-resolution H.264 previews are too heavy for email or shared folders. Medium quality produces a sharable preview that downloads fast on any connection while still revealing composition, pacing, and colour choices clearly.
  • Portfolio uploads. Behance, Dribbble, and personal portfolio sites often have per-asset size caps. Compressing case-study videos to 720p or 1080p at modest bitrates keeps the site responsive without sacrificing the visual quality that portfolios need to convey craft.

How to compress a video

  1. 1Drop your MP4, WebM, or MOV file onto the upload zone or click to browse.
  2. 2The video previews immediately so you can confirm it is the right file.
  3. 3Pick Low, Medium, or High quality. Low is smallest and roughest, Medium is the best size-to-quality tradeoff, High preserves detail.
  4. 4Click Compress. The tool plays the video through a hidden pipeline that re-encodes every frame — progress is shown as a percentage.
  5. 5Preview the compressed result, check the size saving, and click Download.

Frequently asked questions

Why is the compressed file bigger than I expected?

The output can exceed your expectations when the compression settings are less aggressive than the source file already is. The tool re-encodes your video by playing it through a hidden video element, drawing each frame to a canvas, and feeding canvas.captureStream() into MediaRecorder at one of three bitrate targets: 600 Kbps for Low, 1.5 Mbps for Medium, and 4 Mbps for High quality. If your source is a screen recording at 800 Kbps or a heavily compressed social-media clip already at 500 Kbps, selecting High quality will produce an output with a higher bitrate than the input, resulting in a larger file. The re-encoding process also adds container overhead. The output is WebM with VP9 and Opus when supported, or MP4 with H.264 and AAC as a fallback. Neither container adds significant overhead, but the codec's keyframe interval and variable bitrate behavior can push individual files above the nominal target. To actually reduce size below the source, always select Low or Medium quality when the source was recorded at high bitrate. For screen recordings or lecture videos with limited motion, Low quality at 480p frequently achieves 80 to 90 percent size reduction with no perceptible quality loss. Practical tip: check the source file size before compressing and pick a quality preset with a lower bitrate target than the source — the tool displays source resolution and estimates output size after the video loads.

Can it compress a 2-hour recording?

The tool can process long recordings, but a two-hour file introduces practical constraints you should understand before starting. The compression pipeline plays the source video in real time through a hidden video element while MediaRecorder captures the stream. A 2-hour video therefore takes approximately 2 hours of wall-clock time to encode. The browser tab must remain active and in focus throughout because browser throttling reduces video playback speed for background tabs in most Chromium-based browsers and Firefox. Closing the tab or letting the device sleep will interrupt the session. Memory is a more immediate constraint. The raw source file is held in browser memory as an object URL for the duration of the session. A 2-hour recording at a typical 5 Mbps source bitrate is approximately 4.5 GB. Chrome allocates per-tab memory budgets in the 2 to 4 GB range on most desktop systems. Files above 2 GB may trigger an out-of-memory error during decoding or mid-encoding. The best approach for long recordings is to split them first using the Video Trimmer tool, compress each segment separately, and then use a local tool like FFmpeg or Handbrake to merge the segments if needed. All processing stays in your browser — nothing is uploaded. Practical tip: for files above 1 GB, test with a 10-minute segment first to confirm the browser handles your specific codec and resolution before committing to a full-length encode.

What about MP4 output on Firefox?

Firefox supports MP4 output through MediaRecorder but only when the underlying platform provides a hardware or OS-level H.264 encoder. The tool probes MediaRecorder.isTypeSupported() at startup, checking candidates in order: MP4 with AVC1 and AAC, then WebM with VP9 and Opus, then WebM with VP8, and finally plain WebM. On Windows, Firefox can access the Media Foundation H.264 encoder via the Windows media pipeline, which means MP4 output is usually available. On Linux, H.264 hardware encoder access through Firefox depends on the distribution and the installed GStreamer plugins. On macOS, Firefox can access VideoToolbox for H.264, but support varies by macOS and Firefox version. When the tool detects that MP4 is not supported, it falls back automatically to WebM. WebM with VP9 is an excellent codec — it achieves comparable quality to H.264 at the same bitrate — but some video editors, social media platforms, and corporate media systems do not accept WebM natively. If you need guaranteed MP4 output, Chrome on Windows or macOS is the most reliable choice. Both ship with platform H.264 encoders that MediaRecorder can access. Chromium-based browsers on Linux also benefit from hardware encoder access if VA-API is enabled. Practical tip: if Firefox produces a WebM file but you need MP4, open the output in a second browser tab using the HTML-to-MP4 tool, or use a local tool like FFmpeg to remux the WebM container to MP4 without re-encoding.

Does compressing audio reduce quality noticeably?

Audio quality impact during video compression is usually minimal but not zero. The pipeline captures audio through canvas.captureStream() combined with the source video's audio track and feeds both into MediaRecorder. When the output is WebM, the audio is encoded with the Opus codec. Opus is a modern perceptual codec that achieves excellent intelligibility and musical fidelity at 64 to 96 Kbps, which is the default bitrate MediaRecorder applies. At this range, differences are inaudible on speech and lightly compressed music. When the output is MP4, the audio uses AAC at a comparable rate. Problems arise when the source audio was already highly compressed — MP3 or AAC at 128 Kbps or lower — and a second encoding cycle is applied. Each lossy re-encode introduces generation loss: the artifacts from the first compression become inputs to the second encoder, which cannot distinguish them from real signal. The effect is most audible on high-frequency content like cymbals, sibilant speech, and synthesizer pads. If audio fidelity is critical — for podcast production, music videos, or voiceover delivery — extract the audio track first using the Video Audio Extractor to get a lossless WAV, compress the video without audio using the Muted option, and reassemble locally with FFmpeg. Practical tip: toggle the Mute Audio option when compressing videos intended for silent playback in banners, loops, or background visuals — this eliminates audio encoding entirely and slightly improves the video bitrate budget.

Content on this page is available under CC BY 4.0.