WAVE MP4
MP4 · to · MP4

Compress MP4

Drop a video, open Options, and choose a size: a preset (16 MB for WhatsApp, 18 MB for email, 20 MB for Discord) or any number you type. Wave works out how many bits per second the video can afford at that size, lowers the resolution if the picture would fall apart otherwise, and re-encodes it to H.264 on your device. The file never leaves your computer. If the video already fits, Wave says so and leaves it alone.

Under the hood

What actually changes

Video source VIDEO any AUDIO any MP4 new codecs VIDEO H.264 at a computed bitrate AUDIO AAC, 64-128 kbps RE-ENCODE streams transcoded
Pick a size and Wave sets the bitrate from the clip length, keeps 5% in reserve, and steps the resolution down when the bitrate is too thin. A file that already fits is left alone.
Try it

What a file size buys the picture

Size
2.4 Mbpsfor the picture
  • Video
  • Audio 128 kbps
  • 5% kept in reserve

Pick a size and a length to see the resolution Wave would choose.

For a 1080p, 30 fps source. The figures come from the same code Wave's converter uses when you set a File size, so this is what it would actually do.

File size is bitrate multiplied by length: a video that spends 2,000 kilobits on every second of picture and sound comes to about 15 MB per minute. So Wave divides your target by the clip's length, keeps 5% back for the MP4 container and for the encoder running slightly over, reserves 128, 96 or 64 kbps for stereo AAC audio (less when the budget is tight), and gives the rest to the video. It then asks your browser's H.264 encoder to hold that rate steadily instead of spending extra bits on busy scenes, which is what makes the result land under the target rather than somewhere near it. In our tests, a 30-second 1080p clip aimed at 16 MB came out at 15.3 MB, and the same clip aimed at 2 MB came out at 1.9 MB.

When the budget is small, keeping the full resolution is the wrong trade. At about 1 Mbps, 1080p video breaks into blocks whenever anything moves, while 720p at the same rate stays clean, because each pixel gets more than twice the bits. So Wave picks the largest size the bitrate can carry: below roughly 8 Mbps it caps the video at 1440p, below 3.5 Mbps at 1080p, below 1.6 Mbps at 720p, below 800 kbps at 480p and below 350 kbps at 360p. Those figures are for 30 frames per second; 60 fps video steps down sooner. If a target would leave less than about 120 kbps for the video, Wave says so instead of producing something unwatchable, and suggests trimming or a bigger size.

How a given size looks depends more on what's in the video than on anything else. Talking heads, slides and screen recordings stay sharp at rates that turn sports, handheld walking shots or falling confetti into mush. As a rough guide for H.264 at 30 fps: 1080p looks good from about 4-5 Mbps, 720p from about 2 Mbps, 480p from about 1 Mbps; screen recordings need less, fast motion needs more. Video bitrate explained covers the reasoning. If the size you need is far below those numbers, trimming is usually a better fix than squeezing: halving the length doubles the bits every second gets, and the Trim fields are in the same panel.

Wave encodes with the H.264 encoder built into your browser, usually running on the graphics chip, in a single pass at a steady bitrate. That is the quickest way to hit a number, but not the most efficient one: a two-pass x264 encode in HandBrake or ffmpeg at the same size looks better on difficult footage, because the encoder can move bits from easy scenes to hard ones. For a long film or footage you care about, use HandBrake (Video tab: H.264 (x264), Avg Bitrate, 2-Pass Encoding ticked) or ffmpeg: `ffmpeg -i input.mp4 -c:v libx264 -b:v 1300k -pass 1 -an -f null NUL` followed by `ffmpeg -i input.mp4 -c:v libx264 -b:v 1300k -pass 2 -c:a aac -b:a 128k output.mp4` (on a Mac or Linux, write `/dev/null` instead of `NUL`). For a clip you need to send in the next five minutes, Wave is quicker, and nothing gets uploaded.

How to convert

Three steps.

  1. 01

    Step 1

    Drop the video onto Wave above. It's read on your device; nothing is uploaded.

  2. 02

    Step 2

    Open Options and choose a size under File size: 16 MB, 18 MB or 20 MB, or Custom to type your own. Presets only appear when the file is bigger than them.

  3. 03

    Step 3

    Check the plan and estimate, then select Convert to MP4 and save the result. If the plan says the size is too small for the length, trim the clip in the same panel or pick a bigger size.

FAQ

Answers, specifically.

Will the file be exactly the size I picked?

Just under it. Wave aims about 5% below the number so the container and the encoder's small overshoots don't push it over. If a result does come out above the target, the finished screen says so; choosing a size 1-2 MB lower fixes it.

Why did Wave lower the resolution?

Because the bitrate your size allows can't keep the full resolution clean. The same bits spread over fewer pixels give a sharper, steadier picture than a blocky full-size one. The plan shows the resolution Wave picked before you convert. To go smaller still, choose a lower one under Resolution.

My MP4 is already H.264. Can Wave still make it smaller?

Yes. Choosing a size or a lower resolution makes Wave re-encode the video at a lower bitrate, whatever codec it started in. Without either option, an H.264 MP4 is only rewrapped, which keeps its size.

How long does it take?

It depends on your computer and the source. For most phone and camera videos - H.264, HEVC, VP9 or AV1 in MP4, MOV, MKV or WebM - Wave decodes with your browser's own video decoder, which uses the graphics chip where it can: in our tests it decoded 1080p HEVC at over 200 frames a second, several times faster than real time. HDR and 10-bit clips, and older formats like WMV, AVI and MPEG-2, go through Wave's built-in engine instead, which is much slower - a 30-second 1080p HEVC clip took about two minutes that way. Trimming first saves time as well as space, because Wave only processes the part you keep.

Will compressing an HDR iPhone video make it look washed out?

No. When the source is HDR (recent iPhones record it by default), Wave converts it to standard colours during the re-encode, so the smaller file looks right on ordinary screens instead of grey and flat. iPhone HDR video looks washed out explains why it happens.

Which browsers can do this?

Ones with a built-in H.264 encoder: current Chrome and Edge, and Safari 16.4 or later. In a browser without one, Wave falls back to an older MPEG-4 encoder whose files play in VLC but not on most phones, and the plan warns you before you start.

HEVC would be smaller. Why does Wave use H.264?

H.264 plays on every phone, TV, browser and PC without extra software, which matters more than the 30-40% HEVC would save when the file is going to someone else. If everyone you're sending to uses a recent iPhone or Mac, HandBrake's H.265 encoder gets the same quality into a smaller file.

Related

Other converters.