Skip to content

Free Local Video Compressor

Compress MP4, MOV, AVI, MKV & WebM locally in your browser. No upload, account, or watermark.

One-click sharing presets: Compress for Discord / Compress for Gmail

Drop a video or browse

MP4, MOV, AVI, WebM, MKV & more

Files stay on your device
Settings
CRFLower = higher quality
26
23–26 recommended · 0 = lossless · 51 = smallest
Speed presetFaster = larger file
Resize1.000 = original size
Audio bitrateAAC codec
Compression
Progress0%

Buy Me a Coffee

TL;DR

Free browser-based video compressor using FFmpeg WebAssembly H.264 encoding. Accepts MP4, MOV, MKV, AVI, WebM, WMV, FLV. Outputs H.264 MP4. CRF range 0–51 (recommended 23–26). Typical reduction: 70–95%. Includes trim, crop, resolution scaling. Files never leave your device. No account or watermark. Works offline.

What Is Browser-Based H.264 Video Compression?

Browser-based video compression uses FFmpeg compiled to WebAssembly to re-encode video with the H.264 (AVC) codec directly in your browser — without sending a single frame to a server. H.264 is the most widely deployed video codec in the world and is used across streaming platforms, video editors, and major social apps. Localsquash gives you full control: drop in an MP4, MOV, MKV, AVI, WebM, WMV, or FLV file and adjust the CRF value (0 to 51), encoder speed preset, output resolution, audio bitrate, and even trim or crop the clip before encoding. The result is an H.264 MP4 that plays on every device, downloaded directly from memory — no cloud, no queue, no size cap beyond your device's RAM.

What Do CRF, Bitrate, and Encoder Presets Mean?

CRF — Quality Target
CRF (Constant Rate Factor) sets the perceptual quality target for every frame. H.264 accepts values 0-51; lower numbers mean higher quality and larger files. CRF 18-22 is near-lossless for archival. CRF 23-26 hits the sweet spot for streaming and sharing. CRF 28-35 produces small files suitable for preview clips where extreme compression is acceptable.
Encoder Speed Preset
The speed preset (ultrafast → veryslow) trades encoding time for compression efficiency. At the same CRF, a slow or veryslow preset produces a noticeably smaller file than veryfastbecause the encoder spends more time analyzing motion and choosing optimal block sizes. The default is “fast” for quicker encoding; choose “medium” or “slow” for better compression efficiency.
Resolution & Framerate
Halving the linear resolution (e.g., 4K → 1080p) cuts the pixel count to one-quarter, which typically reduces bitrate by 60-75% at equal quality. Framerate is preserved by default; dropping from 60 fps to 30 fps saves roughly 30-40% additional data for motion-heavy content. Cropping removes unwanted edges and reduces the total pixels the encoder must process.

How to Compress a Video Online in Four Steps

1

Drop or select your file

Drag any video — MP4, MOV, MKV, AVI, WebM, WMV — onto the upload area, or click to browse. The file stays on your device; nothing is uploaded.

2

Edit the video (optional)

Use the timeline scrubber to cut unwanted seconds from either end. Use the crop overlay to remove black bars or reframe for portrait/square social media formats.

3

Dial in codec settings

Set CRF (23-26 recommended), pick an encoder speed preset, optionally scale the resolution, and adjust audio bitrate.

4

Encode and download

Click “Compress Video”. FFmpeg.wasm encodes the file locally. When the progress bar completes, the compressed MP4 downloads automatically.

Why Does Localsquash Output H.264 MP4?

When you compress or convert video, Localsquash encodes to H.264 (libx264) inside an MP4 container because H.264 is the most universally supported video codec — it plays natively on every phone, smart TV, browser, desktop OS, game console, and streaming platform without any codec installation. At CRF 23-26 it typically produces files 50-80% smaller than the uncompressed source while keeping visual quality indistinguishable from the original in most viewing conditions.

The CRF slider covers the full H.264 range of 0-51. CRF 0 is mathematically lossless (very large files, useful for archival masters). CRF 18-22 is visually lossless for most content. CRF 23-26 is the practical sweet spot for everyday sharing. CRF 28-35 trades visible quality for aggressively small files, suitable for preview clips or platforms with strict size caps. CRF 51 is the lowest possible quality and only makes sense for testing purposes. If you switch to trim-only mode, Localsquash preserves the original container and streams when possible instead of creating a new MP4.

Video Compression FAQ — Common Questions Answered

Free HandBrake Alternative — Compress Video in Your Browser

HandBrake is the gold standard for desktop video compression, but it requires downloading and installing software. Localsquash offers the same core FFmpeg H.264 encoding engine that powers HandBrake, running directly in your browser via WebAssembly. If you need to compress video with HandBrake-level quality but don't want to install anything, Localsquash is the fastest way to get started. Upload your file, set CRF and speed preset just like HandBrake, and download the compressed MP4 — all without leaving your browser tab.

Like HandBrake, Localsquash processes files entirely on your device with zero server involvement, making it ideal for sensitive footage. HandBrake remains the better choice for batch encoding, H.265/AV1 codecs, and advanced subtitle handling. For single-file compression where privacy and convenience matter, Localsquash delivers HandBrake-grade H.264 output with no install, no account, and no learning curve.

Convert WebM, MKV & MOV to MP4 — FFmpeg in Your Browser

Need to convert WebM to MP4, convert MKV to MP4, or convert MOV to MP4? Localsquash handles all three with the same FFmpeg engine used by professionals on the command line. Instead of typing ffmpeg -i input.webm output.mp4, simply drag your file onto the upload area. The conversion produces H.264 MP4 with AAC audio — the most universally compatible format across all devices and platforms.

WebM → MP4

WebM files (VP8/VP9 video) from screen recorders and browsers convert seamlessly to H.264 MP4. Ideal for sharing recordings that won't play on iOS or older devices. Equivalent to ffmpeg convert webm to mp4.

MKV → MP4

MKV (Matroska) containers are common for downloaded video but lack broad device support. Converting MKV to MP4 re-muxes or re-encodes the video into a universally playable container. Same as ffmpeg convert mkv to mp4.

MOV → MP4

Apple's QuickTime MOV files from iPhones and Final Cut Pro often use HEVC or ProRes codecs. Converting MOV to MP4 with H.264 ensures playback everywhere. Replaces ffmpeg convert mov to mp4.

How to Get the Smallest Video File Size

Two-pass thinking in a one-pass tool

True two-pass encoding (where the encoder scans the full video once before encoding) is not available in the browser, but you can approximate it: compress once at CRF 26, check the output size, then re-compress the original at CRF 24 or CRF 28 depending on whether you need a smaller or larger file.

Trim before you encode, not after

Every second of video you trim off before encoding is a second the encoder never processes. For a 10-minute clip where you only need the middle 3 minutes, trimming first reduces encoding time by ~70% and guarantees the unused footage never goes through the codec at all.

Match resolution to delivery platform

Instagram Reels caps at 1080×1920. Discord uploads usually require 720p or lower at CRF 28-32. WhatsApp re-encodes anything you send anyway, so encoding at 720p CRF 28 before upload avoids double compression artefacts. YouTube accepts 4K, so there is no reason to downscale before uploading there.

Screen recordings compress far more than camera footage

Screen recordings consist of large uniform areas and predictable motion, which H.264 compresses extremely well. A 200 MB screen recording often compresses to under 20 MB at CRF 28 with no visible quality loss. Camera footage of outdoor scenes with lots of natural texture and motion is harder to compress — expect 40-60% reduction rather than 90%.

Compress video locally: choose settings for your file

A local video compressor processes the video on your device. Localsquash runs FFmpeg in your browser and exports compressed video as H.264 MP4 with AAC audio. The compression engine must finish loading before you can encode.

Everyday sharing
Start with CRF 23–26 and the fast preset. Keep the original dimensions first, then compare the downloaded result.
Email or chat attachments
Trim unnecessary footage, resize to 720p, and try CRF 28–32. Check the actual output size against your destination’s limit; CRF does not guarantee a target size.
Screen recordings and text
Try CRF 18–23 and retain enough resolution to read small text. Inspect a short sample before encoding the whole recording.
Long or high-resolution videos
Start with a short trimmed sample. Browser memory and software encoding can limit large jobs; a desktop encoder may be more suitable.

An already compressed video may not become smaller. Higher CRF and lower resolution trade detail for size. Both HandBrake and Localsquash process locally; Localsquash’s main convenience is using a browser without installing a desktop app.

How to compress video and audio together

For a video with sound, use the video tool: CRF and resolution control the picture, while Audio bitrate controls the AAC sound track in the exported MP4. Start with CRF 26 and 128 kbps audio, then inspect the result. For speech, try 96 kbps; for music, compare 160 or 192 kbps before reducing it.

Reducing audio from 192 to 128 kbps saves approximately 4.8 MB over ten minutes, before container overhead. If you need a much smaller video, trimming or reducing resolution may help more. These settings apply when re-encoding, not when copying streams in trim-only mode.

For a separate MP3, WAV, or FLAC recording, use the audio file compressor. Its controls change file size and format, rather than the dynamic range of the sound.