video

Video Compressor

Compress video locally with resolution and bitrate controls using the multi-thread build.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

Video Compressor uses ffmpeg.wasm to re-encode video files locally in the browser. You can reduce file size by changing resolution and video bitrate without uploading the source video to a server.

H.264 is the practical default, while VP9 is also available. The tool estimates output size from duration and settings, then lets you preview, save, or share the compressed result.

Browser Kitty serves the multi-thread build with MP4 and WebM output, using COOP / COEP scoped only to the Compressor app URL.

Good for

  • Shrink phone videos before sending them by email or chat
  • Reduce resolution or bitrate to save storage space
  • Compress private videos without uploading them to an online conversion service

What it can do

Key capabilities available in this tool.

How to use

  1. Select a video file or drag and drop it into the tool.
  2. Review the suggested resolution and video bitrate.
  3. Adjust codec, frame rate, audio removal, or other options when needed.
  4. Check the estimated output size and start compression.
  5. Preview the result, then save or share the compressed video.

Supported

  • Video codecs: H.264 / VP9. H.264 is recommended when unsure.
  • Controls: resolution, video bitrate, frame rate, compression speed, audio bitrate, remove audio.
  • Info: size, duration, resolution, estimated total bitrate, measured frame rate, and format.
  • Output: compressed preview, file download, and sharing where supported.

Limitations and notes

  • ffmpeg.wasm runs as CPU-based WebAssembly and does not use hardware video encoding.
  • Long or high-resolution videos can take significant time and may fail on memory-constrained devices.
  • Available memory and sharing features vary by browser and device.
  • The multi-thread build requires HTTP(S), cross-origin isolation and SharedArrayBuffer. Use the single-thread build for direct disk use.

Frequently asked questions

Is my video uploaded to a server?

No. The selected video and compressed result are processed in the browser and are not uploaded to Browser Kitty.

Which codec should I choose?

H.264 is the best default for compatibility and practical browser-side processing time.

How long does compression take?

It varies with duration, resolution, codec and device. Multi-thread encoding can still take significant time for long clips, so try a short clip first.

Can I remove the audio track?

Yes. Enable audio removal to create a video without its audio track.

Offline version and source code

Browser Kitty serves MT, which requires HTTP(S) and COOP / COEP isolation. Processing has no runtime network dependency. For a saved HTML opened directly from disk, use the repository single-thread video-compressor.html. The GitHub Pages root demo remains single-thread.

View source on GitHub