Skip to content

Video Compressor

Re-encode a video locally as bounded WebM with small, balanced, or quality presets and inspect the actual before-and-after size.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Choose a browser-decodable video no larger than 500 MiB, five minutes, or 3840 × 2160 pixels.
  2. 2.Select Small, Balanced, or Quality and start compression; keep the tab open while the source plays in real time.
  3. 3.Review the actual dimensions and byte change, download the WebM, and play it fully before deleting the original.

About Video Compressor

Video Compressor re-encodes one browser-decodable video into a WebM file without uploading it. Choose a file, select Small, Balanced, or Quality, and start compression. The page plays the source locally, draws each displayed frame into a bounded Canvas, and records that Canvas stream with a WebM codec supplied by the current browser. When the source ends, the tool reports output dimensions, input and output bytes, and the measured percentage change, then offers the generated file for download.

The three presets are transparent product choices rather than claims about a universal optimum. Small limits width to 640 pixels and targets 24 frames per second. Balanced limits width to 1280 pixels and targets 30 fps. Quality limits width to 1920 pixels and targets 30 fps. Each preserves the source aspect ratio, never enlarges the source, and rounds output dimensions down to even pixel values for broader codec compatibility. A bounded bits-per-pixel heuristic chooses the requested recorder bitrate, clamped from 180 kbps through 8 Mbps.

Compression is content dependent. A low-motion animation may become much smaller, while noisy footage, grain, camera shake, rapidly changing detail, or an already efficient source can produce a similar or larger file. The percentage shown is calculated only from the two actual Blob sizes; the tool does not promise that every result is smaller. Try another preset when the result does not suit your needs, and inspect the downloaded file before deleting the original.

Input is limited to 500 MiB, five minutes, 4096 pixels on either side, and no more than 3840 × 2160 pixels of decoded area. These limits bound memory, Canvas allocation, and real-time work. Files may be named MP4, WebM, MOV, M4V, or Ogg, but successful decoding still depends on codecs installed in the current browser. A valid extension cannot make an unsupported codec decodable. Nothing is silently truncated: an invalid file, unsupported decoder, over-limit duration, over-limit frame, missing Canvas stream, or unavailable WebM recorder produces an error and no download.

Encoding runs in real time because MediaRecorder observes the Canvas stream while the source plays. A two-minute source therefore takes approximately two minutes rather than completing instantly. The page draws at the preset cadence, tracks progress from source playback time, and stops stream tracks after recording. Choosing a new file, changing presets, canceling, or leaving the page invalidates the active job and releases temporary Object URLs.

When the browser exposes an audio track through HTMLMediaElement captureStream, the tool adds it to the output stream. Browser support and codec combinations vary, so users should verify both picture and sound in the downloaded file. The source plays audibly during real-time processing when it contains audio; use device volume if needed, but do not assume muting has no effect on a captured track. This utility does not normalize volume, mix tracks, remove metadata according to a certified standard, repair corrupt media, or preserve subtitles, chapters, attachments, rotation tags, color metadata, HDR signaling, or every container feature.

WebM is the only output container because MediaRecorder support for browser-generated MP4 remains inconsistent. The recorder tries VP9, then VP8, then generic WebM according to the current browser's reported support. Output can therefore differ between browsers even with the same preset and source. For archival masters, professional delivery specifications, exact codec profiles, two-pass rate control, fixed keyframe intervals, subtitle preservation, or deterministic cross-platform output, use a maintained desktop encoder such as FFmpeg with a reviewed command.

All source bytes, decoded frames, and output bytes remain in the current tab. Lizely receives no video, thumbnail, duration, file name, codec, or result. Keep the original until you have played the complete output and confirmed that size, duration, picture, sound, and compatibility meet the destination's requirements.

Methodology & sources

Validate extension or MIME, positive whole byte size up to 500 MiB, decoded duration above zero and at most 300 seconds, each side at most 4096 pixels, and decoded area at most 3840 × 2160. Select preset maximum width, frame rate, and disclosed bits-per-pixel target; preserve aspect ratio without enlargement; round dimensions down to even values; and clamp requested video bitrate to 180 kbps–8 Mbps. Draw the playing video into an opaque Canvas stream, append a capturable audio track when exposed, record with the first supported VP9/VP8/WebM MIME, and require a nonempty Blob. Parse Segment Info and TimestampScale, insert the Matroska Duration float in timestamp-scale ticks so downloaded playback has finite duration, then compute the signed byte change. Invalidate work and revoke URLs on replacement, cancel, stale completion, or unmount.

Frequently asked questions

Does the video leave my device?
No. Decode, Canvas drawing, MediaRecorder encoding, and download all happen in the current browser tab.
Why can the output be larger?
Compression depends on motion, noise, source codec, browser encoder, and preset. The result reports actual bytes and never labels a larger file as a reduction.
Why is the output WebM instead of MP4?
Browser MediaRecorder support for generated WebM is substantially more consistent. The tool tries browser-reported VP9, VP8, then generic WebM support.
Will audio, subtitles, and metadata all be preserved?
Audio is included only when the browser exposes a capturable track. Subtitles, chapters, attachments, and many container or color metadata fields are not preserved, so verify the full download.