Free · Private · No upload

Video Compressor & Trimmer

Compress and trim videos directly in your browser — no upload to any server, no watermark, no signup. Everything runs on your device.

🎬
Drop video here or click to select
MP4, MOV, WebM, AVI, MKV · No file size limit · Never uploaded

Why use this instead of Clideo, Kapwing, or HandBrake?

Every popular online video compressor either watermarks the output, limits file size to 500MB, or requires you to create an account. Desktop tools like HandBrake are powerful but complex. This tool hits the middle ground: it's simple to use, runs entirely in your browser using its built-in video encoder, and never uploads your video to any server.

🔒

Never leaves your device

The compression runs locally in your browser tab. The video file stays on your computer at all times — ideal for personal or confidential videos.

✂️

Trim + compress in one step

Set a start and end time to trim the video while compressing it. Perfect for cutting clips before sending to WhatsApp or posting to Instagram.

📱

Platform presets

WhatsApp, Discord and Gmail each cap attachment size. Pick a preset and it sets the resolution and quality that usually land under that cap, with a live size estimate before you commit.

Why this compresses in real time

Most in-browser video tools reach for ffmpeg compiled to WebAssembly, which is genuinely excellent and would encode far faster than real time. It is not an option here, and the reason is worth stating plainly: ffmpeg.wasm needs SharedArrayBuffer, which browsers only expose to pages that are cross-origin isolated. Turning on the headers that grant that isolation would break the advertising that keeps this site free. So the choice was between a faster tool that could not exist and a slower one that can.

What runs instead is built from browser APIs that need no special headers. The video is played back, its frames are captured as a live stream, and MediaRecorder encodes that stream at the bitrate your settings imply. When you change the resolution, frames are drawn onto an off-screen canvas at the new size and the canvas is recorded instead. Audio is taken from the same capture and encoded at 96 kbps, or dropped entirely if you tick mute.

The direct consequence is that compression takes as long as the video. A ten-minute clip needs ten minutes. It also means the tab has to stay in front — browsers throttle and stop rendering background tabs, and a paused playback is a stalled recording. Trimming is therefore doubly valuable: cutting a clip in half halves both the output size and the time you wait for it.

What the settings actually control

Resolution is the lever that matters. File size scales with pixel count, and the steps here are larger than they look: 1080p holds 2.07 million pixels per frame, 720p holds 0.92 million — dropping one step removes 56% of the pixels before any compression is applied. Going to 480p leaves under a fifth of the original. For anything watched on a phone screen or in a chat window, 720p is generally indistinguishable from 1080p, and 480p is perfectly watchable.

Quality sets a target bitrate calculated from the output's pixel count, an assumed 30 frames per second, and a bits-per-pixel figure for the level you picked. That target is handed to the browser's encoder as a request, not a guarantee, which is why the live estimate is an estimate — the encoder decides how closely to follow it. Resolution is never upscaled: choosing 720p for a 480p source leaves it at 480p.

PresetResolutionQualityAimed at
Discord360pTinyThe tightest attachment limit of the set — the most aggressive preset here.
WhatsApp480pSmallerChat video that will be watched on a phone.
Gmail720pSmallerEmail attachments where the limit is moderate but real.
X / Twitter720pBalancedSocial video that still needs to look decent full-screen.
InstagramOriginalBalancedKeeps the frame size, reduces the bitrate — for platforms that re-encode anyway.

Honest limitations

The output format is not yours to choose. The tool asks the browser for MP4 with H.264 first and takes what it can get. Chrome and Edge generally provide it; Firefox falls back to WebM, which is a fine format that a surprising amount of software — iMessage, older televisions, some video editors — will not open. If MP4 matters, use a Chromium-based browser.

Re-recording playback is not the same as transcoding a file. A proper encoder reads every frame from the source. This approach captures frames as they are played, so if the machine struggles and the player drops frames, the recording is missing those frames permanently. The frame rate is also assumed to be 30 for the bitrate maths, and a 60fps source captured through the resizing path is recorded at 30 — which halves the motion smoothness of gameplay or slow-motion footage.

Already-compressed video often gets bigger. Footage from a modern phone, or anything downloaded from a streaming service, has usually been encoded more efficiently than the bitrate target here. Re-encoding then adds bytes rather than saving them, and the tool says so instead of pretending otherwise. Check the live estimate before you start — it will warn you — because the alternative is discovering it ten minutes later.

Missing pieces. No two-pass encoding, no codec selection, no frame-rate control, no cropping or rotation. Subtitle tracks, chapters and metadata are not carried through. The encoded output accumulates in memory until it finishes, so a very long recording is limited by available memory as well as by patience.

Getting under a limit

Work in this order, because it is the order of impact. First trim: most videos have dead time at the start and end, and removing it costs nothing in quality while cutting both the file size and the wait. Then drop the resolution one step, which is the single biggest saving available. Only then reduce quality, because that is the setting that produces visible blocking and smearing in motion.

Mute the audio if it contributes nothing — a silent screen recording or a clip destined for captions. It is a small saving in absolute terms but free when the audio is not wanted.

Read the estimate before committing. It updates as you change settings, and it is the difference between choosing sensibly and waiting out a ten-minute encode to find the result is still too large. If the estimate is close to your limit, go one step further rather than cutting it fine — the real output can land either side of the prediction.

Practical notes for the encode itself: keep the tab in front, keep a laptop plugged in, and do not switch the source file mid-run. For a short clip destined for a chat thread, video to GIF may suit better than a compressed video, and video to MP3 extracts just the audio when the picture is not the point. The rest are grouped on the audio & video page.

Frequently Asked Questions

Is my video uploaded to a server?

No. Compression runs locally in your browser. Your video is never sent to any server, cloud, or third party. It stays on your device the entire time.

How long does compression take?

The video is re-encoded in real time using your browser’s built-in encoder, so a 60-second clip takes roughly a minute. Keep the tab visible while it runs for the smoothest result.

What formats does it support?

Input: MP4, MOV, WebM, AVI, MKV and most other common video formats — anything your browser can play. Output depends on the browser: Chrome and Edge produce MP4 with H.264, which plays everywhere, while Firefox falls back to WebM. If you need a guaranteed MP4, use a Chromium-based browser.

What do the quality settings mean?

They set a target bitrate, calculated from the output's pixel count and an assumed 30 frames per second. High allots the most bits per pixel and Tiny the fewest, with Balanced recommended for most uses. The labels borrow the familiar H.264 CRF numbers as a shorthand for "how aggressive", but this is a bitrate target handed to the browser's encoder rather than true constant-quality encoding — so the estimate is an estimate, and the encoder decides how closely to follow it.

Is there a file size limit?

No limit imposed by this tool. Very large files (500MB+) may be slow depending on your device. If you run into memory issues, try a smaller quality setting or lower resolution. Duration matters more than file size, since encoding happens in real time.

Why did my video come out larger than the original?

Because it was already efficiently compressed. Video from a modern phone or a streaming download is often encoded harder than the target bitrate chosen here, so re-encoding adds bytes instead of removing them — the tool reports this rather than hiding it. Watch the live estimate before starting: if it warns that the output may be larger, drop the resolution rather than the quality, since resolution is by far the bigger lever.

Why must I keep the tab visible?

Because compression works by playing the video and recording it as it plays. Browsers throttle background tabs and pause rendering in them, so switching away can stall the recording or drop frames from it. Leave the tab in front until it finishes, and on a laptop keep it plugged in — power-saving throttling causes the same problem.