When standard video compression is unavailable, the most direct path is to re-encode the file locally inside your browser: the page plays the source, draws each displayed frame into a bounded Canvas, records that canvas as WebM at a bitrate clamped between 180 kbps and 8 Mbps, and reports the actual input-versus-output byte change once the source finishes playing in real time. The whole pipeline — decoding, frame drawing, MediaRecorder encoding, and download — stays in the current tab, so the source file never has to travel to a remote server to be processed.
People hit "I cannot use video compression" for a handful of common reasons: the desktop application they trust is missing a codec, the source file is too large for a web uploader, a corporate or school network refuses uploads, the chosen web tool insists on signing up, or the source is already an efficiently encoded clip that resists re-compression. In each case, the underlying issue is the same — they cannot move bytes through the path they had planned. Re-encoding locally with explicit width, frame-rate, duration, and file-size limits gives them an alternative route they can actually run.

Why "Use Video Compression" Sometimes Is Not Available
The phrase "use video compression" usually hides several different tasks: reduce file size for an email attachment, fit a clip under an upload cap, share a screen recording, or shrink a phone video before posting. Each of those tasks can fail before any encoder is even chosen. A desktop tool may lack the codec that decodes the source — a QuickTime-only MOV, a HEVC clip from a recent phone, or an MKV with an audio track the installer does not include. Cloud tools can refuse files above a few hundred megabytes, which is small by today's phone standards. Network policies can forbid the upload step altogether. And a source that is already an efficient encode can refuse to shrink no matter which settings are picked, because there is little redundant data left to remove.
These failures share a property worth naming: they are not the encoder's fault. They are limits in the surrounding environment — upload bandwidth, missing codecs, file-size caps, content that is already compressed. Treating the absence of compression as a signal to switch paths rather than as a sign that compression is impossible is the practical reframing.
What "Local WebM Re-Encoding" Means in Plain English
A local WebM re-encoder such as the Video Compressor never sends the source anywhere. You choose a file from your device, pick a preset, and the page plays that file through an HTML5 video element while a hidden canvas captures each frame at the preset cadence. MediaRecorder then writes a WebM file from that canvas stream. When the source ends, the page reports output dimensions, input bytes, output bytes, and the signed percentage change between them. The work happens at the speed of real-time playback because MediaRecorder observes the canvas while the source is playing, not in some faster parallel mode.
Three presets define the output. Small caps width at 640 pixels and targets 24 frames per second. Balanced caps width at 1280 pixels and targets 30 fps. Quality caps width at 1920 pixels and targets 30 fps. Each preset preserves the source aspect ratio, never enlarges the source, and rounds output dimensions down to even pixel values so the encoder accepts them. The recorder tries VP9, then VP8, then generic WebM based on what the current browser reports it supports, which is why the same source can produce a different file in Chrome versus Firefox.
How to Compress a Video When Standard Compression Is Not Available
The cleanest recovery path is a fixed local workflow that does not depend on uploads, codecs outside the browser, or sign-up. Follow the steps below with the Video Compressor.
- Pick a source file your browser can decode. Valid extensions include MP4, WebM, MOV, M4V, and Ogg, but a recognized extension cannot make an unsupported codec decodable — if the browser cannot play the file, the tool will surface an error rather than silently producing a result.
- Confirm the file is within the working limits: 500 MiB or smaller, five minutes or shorter, no side longer than 4096 pixels, and decoded area no larger than 3840 × 2160 pixels. Files that exceed any one of these are rejected outright.
- Select a preset — Small, Balanced, or Quality — and start compression. Keep the tab open and the tab focused while the source plays in real time; the recorder observes the canvas during playback, so closing or backgrounding the page can interrupt it.
- Wait for the source to finish. A two-minute clip takes roughly two minutes because encoding runs in real time; the page tracks progress from source playback time.
- Review the reported output dimensions, input bytes, output bytes, and the signed percentage change. The percentage is calculated only from the two actual blob sizes — a larger output is reported as a larger output, not relabeled as a reduction.
- Download the WebM and play it fully before deleting the original. Confirm picture, sound, duration, and compatibility with the destination.
Comparing the Three Presets When You Cannot Use Other Tools
When the alternative tools are unavailable, the three built-in presets are the practical decision space. The differences are concrete and bounded by the tool, not by subjective feel.
| Preset | Max width | Target frame rate | Aspect ratio | Encoder behavior |
|---|---|---|---|---|
| Small | 640 px | 24 fps | Preserved, never enlarged, rounded to even pixels | Lower bitrate, smaller files for low-motion clips |
| Balanced | 1280 px | 30 fps | Preserved, never enlarged, rounded to even pixels | Mid-range bitrate, common screen-recording size |
| Quality | 1920 px | 30 fps | Preserved, never enlarged, rounded to even pixels | Higher bitrate, closer to source detail at the cost of size |
Each preset selects its maximum width, frame rate, and a disclosed bits-per-pixel target, then clamps the requested recorder bitrate into the 180 kbps–8 Mbps range. Trying another preset when the result does not suit your needs is expected behavior — the presets are transparent product choices rather than claims about a universal optimum.
Checking the Result Before You Delete the Original
The signed percentage shown after compression is computed from the two actual Blob sizes and is the only quantitative summary the tool offers. Whether the output is smaller or larger depends on motion, noise, the source codec, the browser's encoder, and the preset. A low-motion animation may become much smaller; noisy footage, grain, camera shake, or an already-efficient source can produce a similar or larger file. Treat the number as a measurement, not a promise.
Play the full downloaded WebM in the player you plan to use at the destination. Confirm that audio is present when the source had audio — audio is captured only when the browser exposes a capturable track through HTMLMediaElement captureStream, and browser support varies. Verify that subtitles, chapters, attachments, rotation tags, color metadata, and HDR signaling behave as you expect: this utility does not preserve them, and the WebM container cannot carry every feature the source container carried. If you need archival masters, exact codec profiles, two-pass rate control, fixed keyframe intervals, subtitle preservation, or deterministic cross-platform output, the recommended path is a maintained desktop encoder such as FFmpeg with a reviewed command; for a fuller comparison of approaches, see how to compare approaches to video compression locally.
Limits That Change Whether the Job Completes
The limits are not advisory — they bound memory, Canvas allocation, and the real-time work the recorder does, and exceeding any one of them produces an error and no download. The interacting limits to keep in mind are: a positive whole byte size up to 500 MiB, a decoded duration above zero and at most 300 seconds, each side at most 4096 pixels, and decoded area at most 3840 × 2160 pixels. Files named MP4, WebM, MOV, M4V, or Ogg are accepted, but successful decoding still depends on the codecs installed in the current browser; the extension cannot make an unsupported codec decodable. An invalid file, an unsupported decoder, an over-limit duration, an over-limit frame, a missing canvas stream, or an unavailable WebM recorder each produces an error rather than a partial result.
Choosing a new file, changing presets, canceling, or leaving the page invalidates the active job and releases temporary object URLs. Nothing is silently truncated. The page stops stream tracks after recording, revokes object URLs on replacement, and ensures the original file remains on your device until you delete it yourself.
When a Desktop Encoder Is the Right Next Step
Local browser re-encoding is the right answer when the obstacle is the upload step, missing in-browser codec support for the destination, or the absence of a simple preset. It is not the right answer when the destination demands a specific codec profile, a specific container, exact bitrate control, two-pass encoding, fixed keyframe intervals, subtitle preservation, or pixel-deterministic output across machines. For those cases, the right tool is a maintained desktop encoder — FFmpeg is the usual reference — and the right input is the original source, not the WebM produced by the browser. Treat the WebM as a quick-share or preview deliverable, and treat the original as the master until a desktop pass produces the final archive.
For a deeper look, see What to Check Before You Use Video Compression.