Compress MP4 Files

Make an MP4 small enough to send. Re-encodes at a bitrate the content actually needs, with hardware acceleration where your browser has it, and stays an MP4 throughout.

The converter is ffmpeg compiled to WebAssembly. It downloads once (30 MB) when you pick your first file, then stays in your browser cache.

Medium is the sensible default: clearly smaller, hard to tell apart in motion. The output is an MP4 (H.264 video, AAC audio), which plays everywhere.

Your file is processed by your own browser and never uploaded. The engine itself is a one-time 30 MB download the first time you use it, and after that it comes out of your browser cache.

How to use Compress MP4

  1. 1Drop your MP4 onto the box above, or click to pick one or more.
  2. 2Adjust resolution and quality below if needed; medium at 720p suits most sharing.
  3. 3Download the compressed file. Its name gets a -compressed suffix so the original is safe.

The bitrate gap

Every oversized MP4 has the same story: the device that made it gave the video far more bits than the content needs, because storage was local and quality was the priority. A screen recording of a slide deck can carry the bitrate of an action film. The fix is not a different format, it is re-encoding the same video at a rate matched to what is actually on screen, and that is precisely what this tool does.

The medium default targets the point where motion on a phone screen stops revealing the difference. High spends more bits for near-transparency, low leans into visible compression for the smallest files. The resolution cap is the other lever, and often the better one: a 4K recording watched in a chat window loses nothing meaningful at 1080p and drops most of its bytes on the way.

Built for the send-it problem

The reason people compress an MP4 is almost always a ceiling somewhere else: a chat attachment limit, an email server, a form that rejects anything over some round number. So this page optimises for that loop being short. Encoding uses your browser's hardware encoder when one is exposed, finishing in a fraction of the clip's duration; a WebAssembly encoder covers every other case, slower but everywhere. The row shows before and after sizes the moment it finishes, so you know immediately whether you cleared the ceiling or should drop a setting and run it again.

The output name gains a -compressed suffix, the original stays untouched, and files up to 500 MB are accepted, with batches processed one after another. As an MP4 compressor it also doubles as a compatibility fixer, since whatever went in comes out as plain H.264. Everything happens on your machine; nothing about your footage is anyone else's business, and there is no queue, account or watermark between you and the smaller file.

Frequently asked questions

Why is my MP4 so big in the first place?
Because whatever recorded it optimised for quality, not size. Phones record at bitrates chosen to survive future editing, screen recorders often just pick a high constant rate, and neither cares that a chat app caps attachments. The content usually needs a fraction of those bits, which is the gap this tool closes.
The file is already an MP4. What is there to compress?
MP4 is only the box; the size lives in how many bits per second the video inside was given. Re-encoding the same video at a bitrate matched to its resolution and frame rate keeps it an MP4 while cutting most of the bulk. Typical phone or screen recordings shrink by well over half at the medium setting, and the row shows the exact numbers for your file.
Will it still play everywhere after compression?
Yes. The output is H.264 video with AAC audio in an MP4 with its index at the front, which is the most compatible file this side of a JPEG. If anything, it plays in more places than the source, since some phone recordings use HEVC, which older devices cannot decode, and the compressed copy is H.264.
Can I compress without any quality loss?
Not by re-encoding, and this page will not pretend otherwise. What you can do is choose where the loss goes. The high setting keeps it essentially invisible, medium trades a little more for a much smaller file, and the resolution cap sheds pixels a phone screen never shows anyway. Keep your original; compression is one-way.
Is my video sent to a server?
No. Both encoding paths, hardware and WebAssembly, run inside your browser. The file never leaves your device, whatever is in it.

More free tools