Skip to content
Zumkor
← Back to blog 9 min read

How to compress video for WhatsApp on Mac (16 MB, offline)

Compress a video for WhatsApp on your Mac — trim to the moment, target 16 MB with one preset, and dodge WhatsApp's brutal recompression, fully offline.

Shrink your videos to send with Zumkor on your Mac — free for 7 days, then 5 files a day free or $19.99 once. Needs macOS 14.0 or later on an Apple silicon Mac (Apple M1 or later).

Get Zumkor on the Mac App Store

You try to share a screen recording, a clip of the kids, or a highlight off your iPhone in a WhatsApp chat, and one of two bad things happens. Either the send crawls and fails — the file is just too big — or worse, it goes through, and what arrives looks like it was filmed through a fish tank: smeared, blocky, nothing like the crisp video on your Mac. The file didn’t just travel; WhatsApp re-encoded it, hard, and the bigger the file you fed it, the worse it came out the other side.

So “compress video for WhatsApp on Mac” is really two jobs in one: get the file small enough to send fast, and get it small and clean enough that WhatsApp’s own recompression has little left to ruin. This guide covers both — the free routes, the one-preset route, and the document-send trick that skips WhatsApp’s re-encode entirely — all running offline on your Mac, with nothing uploaded to a converter site along the way.

In this guide8 sections

What WhatsApp actually does to your video

Understanding the pipeline explains every weird result you’ve seen:

  • Inline media gets recompressed. Always. Send a video the normal way (as media, with the inline preview) and WhatsApp’s servers re-encode it to their own aggressive target before delivering it. This is by design — WhatsApp runs on terrible connections in every country on Earth — and there is no setting to turn it off.
  • The inline cap is roomier than it used to be — around 100 MB will go through — but size and damage are linked: a 90 MB upload gets crushed much harder than a 15 MB one, because WhatsApp is closing a bigger gap to its delivery target.
  • Documents skip the whole machine. A video sent as a document (up to 2 GB) is delivered byte-for-byte untouched — no recompression, full quality. The cost: no inline autoplay, just a file the recipient taps to download and open.
  • The old 16 MB media cap still matters. It survives in older clients and regional builds, and more importantly it marks the practical sweet spot: a clip at ~16 MB sends in seconds on any connection, plays inline, and — because it’s already modest — passes through WhatsApp’s re-encode with far less visible damage than a big upload would.

That’s why the strategy below aims at 16 MB for everyday inline sends, and reaches for the document route when quality is the whole point.

Trim first — it’s most of the job

Duration is the biggest lever in any video compression, because a size target divided by fewer seconds leaves more bitrate for each one. A 3-minute recording squeezed into 16 MB looks rough at any resolution; the 25 seconds of it anyone actually needs looks fine in the same budget.

So before compressing anything, cut the clip down to the part that matters. QuickTime Player does this for free (Edit → Trim, drag the yellow handles, save as a new file) — or do it inside the converter in the same pass, which is one of the two things that make the app route below genuinely nicer than the free one.

Method 1: the free routes (QuickTime, ffmpeg)

QuickTime Player can re-export at a lower resolution: File → Export As → 720p (or 480p). For a short clip this may land under 16 MB on its own. But there’s no size target anywhere in it — you export, check the file size in Finder, and if it’s still 24 MB your only remaining move is exporting again at 480p and hoping. For one short clip it’s fine; as a repeatable method it’s a coin flip.

ffmpeg (via Homebrew: brew install ffmpeg) can hit a size target properly, because you can do the arithmetic yourself. A size budget is just bitrate × duration: 16 MB is 128 megabits; keep ~8% headroom for container overhead (call it 117 Mbit usable); subtract the audio (128 kbps × 60 s ≈ 8 Mbit); what’s left, divided by the duration, is your video bitrate. For a 60-second clip that’s roughly 1,800 kbps:

ffmpeg -i input.mov -vf "scale=-2:720" \
  -c:v libx264 -b:v 1800k -maxrate 1800k -bufsize 3600k \
  -c:a aac -b:a 128k output.mp4

That scales to 720p, encodes H.264 at the computed bitrate, and produces an MP4 every phone on Earth can play. It works — and note what the workflow really is: redo the arithmetic for every clip of a different length, run the encode, check the size in Finder, and nudge the bitrate down and re-run if you landed over. It’s free and precise, and it’s also exactly the loop you’ll be tired of by the third clip.

Method 2: Zumkor (trim, pick “WhatsApp (16 MB)”, done)

That duration-to-bitrate arithmetic is precisely what Zumkor’s size presets do for you (it needs macOS 14 or later on an Apple silicon Mac — any M-series machine):

  1. Drag the video in — the iPhone MOV, the screen recording, the MKV or WebM someone sent you; Zumkor reads them all, and the output comes out as a phone-friendly MP4 regardless.
  2. Trim to the moment. Open the clip’s trim view — QuickTime-style yellow handles — and keep only the seconds that matter. The size budget is computed from the trimmed duration, so trimming directly buys quality: trim and compress happen in one pass, not two exports.
  3. Under Fit a size limit in the video’s menu, pick the preset named “WhatsApp (16 MB)”. It targets 720p, budgets the bitrate from your clip’s actual duration, and re-encodes so the file lands under the cap — or tells you if the clip can’t fit, so you can trim harder. No arithmetic, no export-check-retry loop.
  4. Click Convert. The compressed MP4 lands in your chosen output folder; the original stays untouched at full quality.

Everything runs on-device and offline — a family video never touches a compression website. iPhone footage needs no special handling either: HEVC sources come out as maximally-compatible H.264, so the clip plays for the Android cousins too.

The same preset list covers everywhere else files bounce — Gmail / iCloud (25 MB) and Outlook (20 MB) for email, Discord / Linear (10 MB), Notion (5 MB), and iMessage / Bluesky (100 MB) — so “make this sendable” is one pick per destination, not one bitrate calculation per clip. Sending clips to the group chat regularly? Zumkor’s “Make a Video Smaller” action in Apple’s Shortcuts app runs headless, so a folder-watch automation can produce WhatsApp-ready copies of everything you drop in a folder.

Zumkor is free for 7 days, full-featured; after that it’s a one-time $19.99 purchase — buy once, keep it forever, no subscription. The honest accounting: for one clip, once, QuickTime’s 720p export plus luck is free. The preset earns its keep the moment clips become a habit — and the trim handles alone beat doing duration math in a calculator.

When quality is the point: send it as a document

For the clip that matters — the wedding toast, the recital, footage someone will want to keep — inline sending is the wrong tool no matter how well you compress, because WhatsApp will still re-encode whatever you send inline. The move is the document route:

  1. Get the file into reasonable shape first — an H.264 MP4 is the safest format to put in an envelope, so convert it if it’s something more exotic, and trim off the dead air.
  2. In the chat, attach it as a document/file rather than as a photo or video (in the Mac app, when you drag a video into a chat, choose the option that sends it as a file without compression when it’s offered; on the attach menu, pick Document and browse to the file).
  3. Send. Up to 2 GB goes through byte-for-byte untouched — the recipient downloads exactly the file you exported.

The trade-offs are real: no inline autoplay preview, a download step for the recipient, and a big file still takes time to upload. Which is why the two routes coexist: 16 MB inline for the everyday clip that just needs to be seen, document for the file that needs to survive.

Getting the send right

  • Trim before anything else. Every second you cut is bitrate handed to the seconds you keep. The 20-second version of your clip at 16 MB looks dramatically better than the 2-minute version at 16 MB.
  • Don’t send the raw 4K file inline and hope. That maximizes the gap between your file and WhatsApp’s delivery target, which maximizes the visible damage. Arriving pre-compressed is how the clip stays recognizable.
  • Keep the original. Compress a copy for the chat; the full-quality file stays on your Mac (Zumkor never touches originals). The group chat gets 16 MB; posterity gets the real thing.
  • Mind the sound. WhatsApp’s re-encode hits audio too. If the point of the clip is what was said, the pre-compressed-inline or document routes preserve it best; if the video is disposable but the audio isn’t, consider pulling the audio out as its own file and sending that alongside.
  • A silent moment can be a GIF instead. For a two-second reaction or a UI demo, a small animated GIF autoplays in chat with no recompression drama at all.

Bottom line

  • One short clip, once: QuickTime — trim, then File → Export As → 720p, and check the size in Finder. Free, no guarantees.
  • Comfortable in Terminal: ffmpeg with the bitrate math above — precise, free, and manual arithmetic per clip.
  • Clips as a habit: Zumkor — drag the clip, trim with the yellow handles, pick “WhatsApp (16 MB)”, convert. Offline, on-device, free for 7 days, then one-time $19.99.
  • Quality-critical footage: compress nothing — send it as a document (up to 2 GB, no recompression) and accept the missing inline preview.

The thing to internalize is that WhatsApp will re-encode anything you send inline — the only question is whether it re-encodes a bloated raw file into mush or a clean 16 MB clip into something that still looks like your video. Show up small, and the chat gets the good version.

FAQ

Why does WhatsApp make my videos look so bad?

Because WhatsApp re-encodes every video sent as inline media on its own servers, aggressively, to keep delivery fast on poor connections worldwide. The bigger and higher-bitrate your upload, the more violently it gets crushed. You can’t turn that off for inline video — you can only send a file that’s already small and clean so there’s less for WhatsApp to destroy, or send the video as a document, which skips recompression entirely.

What is the maximum video size for WhatsApp?

Sent as inline media, WhatsApp accepts videos up to roughly 100 MB but recompresses them hard before delivery. Sent as a document (attach as File instead of Photo & Video Library), the limit is 2 GB and the file arrives byte-for-byte untouched — but recipients see a filename to download instead of an inline preview. A clip compressed to around 16 MB is the practical sweet spot: it sends fast, plays inline, and survives WhatsApp’s re-encode with little visible damage.

How do I send a video on WhatsApp without losing quality?

Send it as a document: in the chat, attach via File (on the Mac app, drag the file in and choose to send without compression when offered) rather than as a photo/video. Document sends up to 2 GB skip WhatsApp’s recompression completely. The trade-off is no inline autoplay preview, and the recipient needs a player that handles the format — so an H.264 MP4 is the safest thing to put in the envelope.