Drag & drop multiple videos (MP4, MOV, AVI, MKV) and compress them in batch using FFmpeg WebAssembly. Adjust bitrate, resolution, preset – all processed inside your browser. No upload, no tracking, total privacy.
or click to select (multiple files allowed)
Unlike FFmpeg.wasm, this tool uses only browser APIs: HTMLVideoElement, Canvas, and MediaRecorder. Each video is played at the desired resolution, frames are drawn onto a canvas, and the canvas stream is encoded to WebM (VP9) with adjustable bitrate. This approach is hardware-accelerated, consumes less memory, and works on any modern browser without special HTTP headers.
Compression pipeline: Original → Decode (GPU) → Resize (Canvas) → Encode VP9 → WebM output.
Typical reduction: 75–90% for 1080p to 720p with medium quality.
The browser's native video decoder has limited support for legacy formats like MPEG-1/MPEG-2 (`.mpg`, `.mpeg`, `.vob`). While it may play them in a `
| Source | Original Size | After Compression (720p, quality 0.5) | Estimated Processing Time |
|---|---|---|---|
| 1 min gameplay (1080p MP4) | 85 MB | 9.2 MB | ~12 sec |
| 2 min vlog (MOV) | 210 MB | 18 MB | ~22 sec |
| 30 sec drone (4K) | 120 MB | 11 MB | ~8 sec |
Note: Processing time depends on your device's GPU, browser performance, and video complexity. The times above are estimates for a mid-range desktop computer.
An archivist volunteer had over 100 old camcorder recordings in .MPG format (totaling about 50 GB). They first converted the entire batch to MP4 (H.264) using HandBrake's batch queue overnight. Then, using this tool with '720p, medium quality' settings, they compressed the videos to about 7.2 GB in WebM format, which were then uploaded to a family cloud photo album. The entire process kept the original videos on their local machine at all times.
ffmpeg -i input.webm -c copy output.mp4.