DEV Community

toolzip
toolzip

Posted on

Compress Videos in Your Browser — No Upload, No Server, Free

Most free video compression tools require you to upload your file to their servers. That means your personal videos, work recordings, or confidential footage gets sent to a third-party server you don't control.

ToolZip's video compressor runs entirely in your browser using FFmpeg.wasm — your file never leaves your device.

How It Works

FFmpeg is the industry-standard video processing tool used by YouTube, VLC, and countless other platforms. ToolZip compiles it to WebAssembly (WASM) so it runs directly in the browser with no server involved.

User selects file
→ FFmpeg.wasm loads (~30MB, cached after first use)
→ Compression runs locally in browser
→ Download compressed file
→ No network request for the file itself
Enter fullscreen mode Exit fullscreen mode

You can verify this yourself: open DevTools → Network tab → no file upload request occurs.

Features

  • Three quality presets: High (near-original), Medium (balanced, recommended), Low (smallest size)
  • Formats supported: MP4, MOV, WebM, AVI, MKV
  • Output: MP4 (H.264 + AAC via libx264)
  • No file size limit (larger files = longer processing time)
  • No signup, no watermark, completely free

The Trade-off: First Load Time

FFmpeg.wasm is ~30MB. On first use, it takes 5–15 seconds to load depending on your connection. After that, it's cached in the browser and loads instantly.

This is the cost of running entirely client-side — worth it for privacy-sensitive files.

Typical Compression Results

Original Compressed (Medium) Reduction
100MB ~30–50MB 50–70%
500MB ~150–250MB 50–70%

Results vary based on the original encoding, bitrate, and resolution.

Other Video Tools in ToolZip

ToolZip also includes several other browser-based video tools, all using FFmpeg.wasm:

  • Video Trim — Dual-handle range slider, preview selection before cutting
  • Video to GIF — Convert any clip to GIF with FPS and width controls, side-by-side preview
  • Format Converter — MP4 ↔ MOV ↔ WebM ↔ AVI ↔ MKV
  • Thumbnail Extractor — Play video, pause at any frame, capture as JPG (uses Canvas API, no FFmpeg needed)
  • Audio Extractor — Extract MP3 from video with built-in audio player

Tech Stack

FFmpeg.wasm (@ffmpeg/ffmpeg + @ffmpeg/util)
Next.js 16 (App Router)
Deployed on Vercel
Enter fullscreen mode Exit fullscreen mode

FFmpeg is loaded from unpkg CDN on first use:

const baseURL = "https://unpkg.com/@ffmpeg/core@0.12.6/dist/umd";
await ffmpeg.load({
  coreURL: await toBlobURL(`${baseURL}/ffmpeg-core.js`, "text/javascript"),
  wasmURL: await toBlobURL(`${baseURL}/ffmpeg-core.wasm`, "application/wasm"),
});
Enter fullscreen mode Exit fullscreen mode

The compression command uses libx264 with CRF control:

// Medium quality: CRF 28
await ffmpeg.exec([
  "-i", inputFile,
  "-vcodec", "libx264",
  "-crf", "28",       // 18=high, 28=medium, 35=low
  "-preset", "fast",
  "-acodec", "aac",
  "output.mp4"
]);
Enter fullscreen mode Exit fullscreen mode

Try It

toolzip.app/tools/video-compress

No signup required. Works on Chrome, Edge, Firefox, and Safari (desktop recommended for large files).


ToolZip is a collection of 48 free browser-based tools for image, video, PDF, text, and developer utilities. All processing happens client-side — no file uploads, no server.

Top comments (0)