How to compress video to fit whatsapp's 16 mb cap
- Step 1Open the WhatsApp compressor — Load the tool at /video-tools/whatsapp-compressor. It runs entirely in the browser, so there's nothing to install on your phone or laptop.
- Step 2Drop in the clip you want to post — Add the video you plan to share to Status, a chat, or a group. The tool reads duration, frame rate, and resolution locally to plan the encode — the file is never sent anywhere.
- Step 3Confirm the fixed 15 MB target — There are no sliders or quality presets here by design — the tool always targets 15 MB to fit the 16 MB cap with a margin. The options panel simply confirms this so the output is predictable every time.
- Step 4Run the size-fit encode — The tool computes a bitrate budget from your clip's duration, then encodes to H.264 — WebCodecs hardware path first, FFmpeg.wasm libx264 fallback if needed. Longer clips get a lower bitrate to hold the same 15 MB ceiling.
- Step 5Download the compressed MP4 — Save the result to your camera roll or downloads. Audio is muxed back in (96 kbps AAC for clips under 30 s, 128 kbps for longer) so a Status clip keeps its sound.
- Step 6Post to Status without WhatsApp re-encoding it — Share the file through WhatsApp as normal. Because it's already under 16 MB, WhatsApp accepts it inline and skips its own lossy re-compression — what you encoded is what your contacts see.
What WhatsApp caps, and what this tool targets
The 16 MB video limit applies the same way across Status, chats, and groups. The tool targets 15 MB to leave headroom for container overhead.
| Where you post | WhatsApp video size cap | Other relevant limit | Tool target |
|---|---|---|---|
| Status | 16 MB per video clip | Status video plays up to ~30 s before WhatsApp splits it into multiple Status frames | 15 MB H.264 MP4 |
| One-to-one chat | 16 MB per video attachment | Larger files force WhatsApp's auto-compress prompt or fail to attach | 15 MB H.264 MP4 |
| Group chat | 16 MB per video attachment | Same cap as one-to-one; no per-group exception | 15 MB H.264 MP4 |
| Channel / broadcast | 16 MB per video clip | Same media pipeline as Status | 15 MB H.264 MP4 |
Bitrate budget the tool computes from duration
The tool derives video bitrate from clip length so the muxed file lands near 15 MB. Audio is reserved first (96 kbps under 30 s, 128 kbps at or above). Figures are approximate video-track bitrates.
| Clip duration | Reserved audio | Approx. video bitrate at 15 MB | Practical quality |
|---|---|---|---|
| 10 s | 96 kbps | ~11.9 Mbps | Crisp even at 1080p — short clips have generous headroom |
| 30 s | 128 kbps | ~3.9 Mbps | Good 720p / acceptable 1080p |
| 60 s | 128 kbps | ~1.9 Mbps | Solid 720p; consider 720p source for cleaner motion |
| 3 min | 128 kbps | ~530 kbps | Soft — long clips hit a hard quality floor; trim or split first |
Cookbook
Concrete before/after numbers for typical Status sources. The tool reports source size and output size; these examples show the encode planning math the tool runs under the hood.
1080p phone clip, 22 s, way over the cap
A typical hold-the-phone-vertical Status clip straight off a recent Android or iPhone is recorded at a high bitrate, so even 22 seconds blows past 16 MB. The tool reserves 96 kbps for audio (under 30 s), then spends the rest of the 15 MB budget on H.264 video.
Source: 1080x1920, 22 s, 41.8 MB (over 16 MB cap) Plan: target 15 MB, audio 96 kbps, video ~5.3 Mbps Output: 1080x1920, 22 s, ~14.6 MB H.264 MP4 Result: posts to Status inline; WhatsApp does NOT re-encode
Why pre-compressing beats WhatsApp's own squeeze
If you hand WhatsApp the 41.8 MB file, it re-encodes on-device to roughly its own internal ceiling — far below 5 Mbps — which is why faces look blocky. Pre-compressing to 15 MB spends a much larger budget on the same clip.
Hand 41.8 MB to WhatsApp directly: WhatsApp re-encodes -> often <1.5 Mbps effective video visible macroblocking on motion + faces Pre-compress here to 15 MB first: ~5.3 Mbps video at the same 22 s WhatsApp accepts inline, no second re-encode
Long clip hits the quality floor
A 16 MB cap is unforgiving for anything over a minute or two. At 3 minutes the budget falls below ~530 kbps of video, which looks soft. The tool still produces a valid file, but the better move is to trim the highlight.
Source: 720x1280, 3 min, 78 MB
Plan: target 15 MB, audio 128 kbps, video ~530 kbps
Output: ~14.8 MB H.264 MP4 (visibly soft)
Better: trim to the best 30 s with the lossless trimmer first,
then run this tool -> ~3.9 Mbps, much sharperStatus auto-splits at ~30 s anyway
WhatsApp Status plays a single posted video for about 30 seconds before splitting the rest into additional Status frames. Encoding a 25 s clip to 15 MB keeps it as one clean Status frame at a high bitrate.
Source: 1080x1920, 25 s, 36 MB Plan: target 15 MB, audio 96 kbps, video ~4.7 Mbps Output: ~14.5 MB single-frame Status clip Note: stays under WhatsApp's ~30 s single-frame window
Already-small clip is left near 15 MB, not bloated
If a source is already close to or under the cap, the duration-based budget simply encodes it to fit 15 MB. The tool never inflates a small file — it encodes to the target bitrate for that duration.
Source: 720x1280, 12 s, 9 MB (already under 16 MB)
Plan: target 15 MB, audio 96 kbps, video ~9.9 Mbps
Output: re-encoded H.264 MP4, well under 16 MB
Tip: if it's already under 16 MB and looks fine, you can
just post the original and skip compression entirelyEdge cases and what actually happens
Output lands a touch over 15 MB
By designBitrate-targeted single-pass encoding is an estimate, not an exact size lock, so the real output can vary slightly around the target. That's exactly why the tool aims for 15 MB rather than 16 MB — even a file that overshoots the target by a megabyte still clears WhatsApp's 16 MB cap. The tool logs a soft warning if the result exceeds the target but still hands you the file.
Clip is several minutes long
Quality floorThe 16 MB cap is fixed regardless of length, so a 5-minute clip squeezed into 15 MB gets a very low video bitrate and looks soft. There is no minutes cap on the tool itself — the limit is purely file size — but for a watchable result, trim to the best segment with the lossless trimmer first, then compress.
No options to raise quality above 15 MB
ExpectedThis tool has no bitrate slider, quality preset, or adjustable target — it always aims for 15 MB to fit WhatsApp's cap. That's intentional: the cap is the constraint, not a preference. If you want to choose your own size or bitrate for a different destination, use the bitrate setter or the Discord compressor (25 / 50 MB targets).
Source has no audio track
SupportedSilent screen recordings or muted clips encode fine. When the probe finds no audio, the tool spends the entire 15 MB budget on video instead of reserving the 96 / 128 kbps audio slice, so a silent clip actually gets a slightly higher video bitrate at the same size.
Mobile browser, source over 80 MB on the software path
Rejected on mobile WASMIf your phone can't use the WebCodecs hardware encoder and falls back to FFmpeg.wasm, the tool refuses sources larger than 80 MB and tells you so — a phone's WebAssembly heap can't host the decoder and encoder together on a large file without an out-of-memory crash. Trim the clip first, or run the tool on desktop where the limit doesn't apply.
Browser ran out of WebAssembly memory mid-encode
OOM errorOn the FFmpeg.wasm fallback, very large or long sources can exhaust the WASM heap (Aborted(OOM) / malloc failed). The tool catches this and returns a plain-language message instead of a stack trace, suggesting a shorter or lower-resolution source. The WebCodecs hardware path avoids this entirely when your browser supports H.264 encode.
1080p source on a phone using the software fallback
Auto-downscaledWhen a mobile browser uses the FFmpeg.wasm path on a source taller than 720p, the tool downscales to 720p before encoding to keep the WASM heap in budget. This trades a little resolution for a finished file instead of a crash. On desktop, or on the WebCodecs hardware path, the source resolution is preserved.
HEVC / 10-bit source from a newer phone
SupportedThe tool decodes the source and re-encodes to 8-bit H.264 MP4 for WhatsApp compatibility, so HEVC (H.265) or 10-bit HDR sources are converted down. On the FFmpeg.wasm fallback an HEVC decode plus libx264 encode is heavy — if it stalls on mobile, run it on desktop or trim first.
Frequently asked questions
What is WhatsApp's actual video size limit for Status?
A single video clip on WhatsApp is capped at 16 MB, and that same cap applies to Status, one-to-one chats, and groups. Status additionally plays a posted video for about 30 seconds before splitting the remainder into more Status frames, but the size limit per clip is the 16 MB figure. This tool targets 15 MB so the muxed MP4 stays under the cap with room for container overhead.
Why does my Status video look worse after I post it?
If your clip was over 16 MB, WhatsApp re-encoded it before posting — and its re-encode uses a much lower bitrate than the tool's 15 MB budget, which is what produces the blocky faces and smeared motion. Compress to 15 MB here first and WhatsApp accepts the file inline without a second re-encode, so the version your contacts watch is the one you made.
Can I choose a different target size or quality?
No — this tool always targets 15 MB to fit WhatsApp's 16 MB cap, with no slider or preset. That keeps the output predictable. If you need a different ceiling, the bitrate setter lets you pick a video bitrate directly, and the Discord compressor targets 25 MB or 50 MB.
Does the compressed file ever get uploaded?
No. The entire encode runs in your browser using WebCodecs (hardware-accelerated where available) or an FFmpeg.wasm fallback. Your clip never leaves your device, so a private Status video has zero server exposure. Only an anonymous counter (a file was processed, not its contents) is recorded if you're signed in, and you can opt out.
What format does the output use?
Always H.264 MP4 — the WebCodecs hardware path encodes avc1.42E02A (Baseline-compatible H.264) and the FFmpeg fallback uses libx264, both muxed into MP4 with +faststart. H.264 MP4 is the most broadly compatible format across every Android and iOS WhatsApp build, which is why there's no codec choice.
How long can the clip be?
There's no time cap on the tool itself — the only limit is file size by tier (1 GB free). But the 16 MB ceiling means longer clips get a lower bitrate: a 30 s clip has a generous budget, while a 3-minute clip drops below ~530 kbps and looks soft. For long sources, trim to the highlight with the lossless trimmer first.
Will it keep the audio?
Yes. Audio is re-encoded to AAC and muxed back in — 96 kbps for clips under 30 seconds and 128 kbps for longer ones — with the rest of the 15 MB budget going to video. If the source has no audio track, the full budget goes to video instead.
Can I do this on my phone?
Yes — it's a browser tool, so it works on mobile. On phones it prefers the WebCodecs hardware encoder. If your phone falls back to the FFmpeg.wasm software path, sources over 80 MB are rejected (a phone's WASM heap can't handle them) and sources over 720p are downscaled to 720p to avoid out-of-memory crashes. See the mobile-fix guide for the phone-first workflow.
Does this use two-pass encoding?
No — it's a single-pass, duration-based bitrate calculation: the tool divides the 15 MB budget across your clip's length (minus the audio reservation) and encodes to that bitrate in one pass. Single-pass keeps the encode fast and within browser memory limits; the 1 MB safety margin under the cap absorbs the small size variance that single-pass produces.
My iPhone .mov file is huge — will this handle it?
Yes. The tool decodes the MOV (HEVC or H.264) and transcodes to H.264 MP4 at the 15 MB target. iPhone MOV sources are exactly the case the iPhone MOV guide covers in detail. Very large 4K HEVC sources encode faster on the WebCodecs hardware path; on a phone's software fallback, trim first if it stalls.
Why does my output sometimes come out slightly above 15 MB?
Single-pass bitrate targeting estimates the size rather than locking it exactly, so the result varies a little around the target. The tool aims for 15 MB precisely so even a small overshoot still clears WhatsApp's 16 MB cap. If a file overshoots the internal target it logs a soft warning but still gives you a usable, send-ready clip.
What if I just want to crop or resize for Status instead of compress?
Use a dedicated tool for that step, then compress here. The video resizer changes dimensions and the video cropper reframes to a vertical Status aspect. Run those first, then drop the result into this tool to fit the 16 MB cap as the final step.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.