Online Video Compressor

mp4 · webm

Re-encode an MP4 or MOV at a lower resolution and bitrate to shrink it for email or chat. Your browser does the work in this tab, so the video is never uploaded.

QueueNothing is uploaded

Drop a video here to compress it

or click to browse files from your device

Processing your video…

About this video compressor

The compressor works on one video at a time. When your browser supports WebCodecs and the file is an MP4, M4V or MOV, it decodes and re-encodes the video track itself: the long side is capped at 720 pixels, and the bitrate is set from the source video track's own bitrate, roughly a fifth of it for a typical 1080p phone recording, and never more than 85% of it. An AAC audio track is copied through unchanged; other audio codecs are left out, so the compressed file comes out silent.

Anything else, such as a WebM or MKV file, a browser without WebCodecs, or a fast path that turns out slower than the video itself, falls back to recording the video live from a canvas at 75% of its original size and a fixed 1.2 Mbps. That fallback takes at least as long as the clip and needs the tab to stay open and in front, since a background tab slows down the frame timer it depends on.

How to use it

01

Add your video

Drop an MP4, MOV or other video file on the box, or pick one with the button. Only one video is compressed at a time.

02

Compress it

Click Compress video. The progress bar shows a fast in-browser re-encode for MP4 and MOV, or a slower live recording for other formats.

03

Download the result

When compression finishes, the smaller file appears with a Download button. Nothing is saved until you click it.

What it does

  • Re-encodes an MP4, M4V or MOV video with a smaller frame size and a lower bitrate, computed from what the source video track actually uses.
  • Caps the long side of the picture at 720 pixels and keeps the video bitrate below the source's own, so an already efficient file doesn't grow.
  • Copies an AAC audio track through unmodified, so the sound quality doesn't change and no time is spent re-encoding it.
  • Falls back to a live screen capture at 75% size and a fixed 1.2 Mbps for WebM, MKV and other containers, or whenever the fast path would run slower than the clip itself.
  • Works on one video at a time, so the queue never holds more than a single file.

Specifications

Specification Details
Accepts One video file at a time, any type your browser recognizes as video
Fast path MP4, M4V and MOV, when the browser supports WebCodecs: long side capped at 720 px, bitrate set from the source video track
Fallback path Every other format or browser: a live canvas recording at 75% size and 1.2 Mbps
Audio An AAC track is copied unchanged on the fast path; other audio codecs are not carried over
Output Always MP4 from the fast path; MP4 or WebM from the fallback path, depending on the browser
File size limit 100 MB
Libraries mp4box 0.5.2 and mp4-muxer 5.2.1, loaded from jsDelivr, only for the fast path
Good to know

What the compressor does not do

It lowers resolution and bitrate. A few things are worth knowing before you rely on it.

No quality picker

There's a single preset. If the result is still too big or too soft, a desktop tool like HandBrake or ffmpeg gives you more control.

No trimming

The whole clip is re-encoded. Cutting a long intro or outro first, in a video editor, shrinks the file more than a lower bitrate does.

100 MB file limit

Videos larger than that aren't accepted. A long screen recording or a 4K clip can outgrow this quickly.

Non-AAC audio is dropped, not converted

On the fast path, an audio track that isn't already AAC is left out of the result instead of being re-encoded, so the compressed video can end up silent.

The fallback path needs a foreground tab

The live recording is driven by the tab's own frame timer, and browsers slow that down once a tab is in the background.

Related tools

Frequently asked questions

No. It's re-encoded inside this tab, either by your browser's own video encoder or by recording a canvas. The only network requests are for the mp4box and mp4-muxer libraries, and only on the fast path.

Its audio track wasn't AAC. On the fast re-encoding path, only AAC audio is copied into the result; other codecs are dropped rather than converted.

Your file or browser is using the fallback path, which records the video live and so can't run faster than real time. Keep the tab open and in front, since a backgrounded tab slows the recording down.

It depends on the source. On the fast path, the video bitrate is set from what the source video track actually uses, roughly a fifth of it for a typical 1080p phone clip, but the audio track is copied through unchanged, so a long clip with a lot of talking and little motion won't shrink as much.

No. There's one preset: the long side is capped at 720 pixels and the bitrate is calculated for you.

Yes, 100 MB, and one video at a time.

Your video stays on your device

Compression happens inside this tab, using your browser's own video encoder or a live canvas recording. The video is never uploaded. Only the mp4box and mp4-muxer libraries are downloaded, from jsDelivr, and only when the fast path runs.