WhatsApp Cloud API video message size limit: 16 MB, H.264 and AAC
WhatsApp video messages take MP4 or 3GP up to 16 MB, H.264 video and AAC audio only. See what Sume's exact trim outputs and what you still check yourself.

A WhatsApp Cloud API video message can be an MP4 or 3GPP file of at most 16 MB, with H.264 video and AAC audio only. Sume's exact video trim re-encodes to H.264 with AAC audio, but you cannot set bitrate or profile, so you meet 16 MB by cutting shorter and downsizing.
Limits are from Meta's video messages page; trim behavior from Sume's Video trim docs, both read 2026-10-01.
What does WhatsApp accept?
| Item | Requirement |
|---|---|
| Containers | MP4 (video/mp4) and 3GPP (video/3gpp) |
| Max size | 16 MB each |
| Codecs | H.264 video, AAC audio; one audio stream or none |
| Android advice | H.264 High profile with B-frames is not supported by Android WhatsApp clients; Meta recommends Main without B-frames, or Baseline |
| Layout advice | moov before mdat (ffmpeg -movflags faststart) |
What does a Sume trim output?
With precision: "exact" (the default) the docs say the cut is a frame-accurate re-encode with libx264 and yuv420p, and kept audio is AAC. That fits the codec line. The docs do not state the H.264 profile, B-frame use, or faststart layout, so check those on the output if your audience is on Android.
How do I get under 16 MB?
Sume's trim has no bitrate or size-target field. Shorten the range with start and duration, and set output width and height (256 to 2160) to lower the pixel count. Then measure the file; if it is still over, cut or downsize again. Use audio: "drop" if the clip needs no sound, since Meta allows no audio stream.
What should I do next?
Trim, download the result, check size and profile, then upload to WhatsApp media. The same call shape is covered in trim and conform in one call.
Sources
Related posts
More in Developers
- WhatsApp Cloud API media ID expiry: 30 days, URL 5 minutes
WhatsApp media IDs from the API expire after 30 days, webhook IDs after 7, and a media URL works for 5 minutes. Keep your own durable source, not the ID.
- X Ads API video_total_views: new 3-second 100% in-view rule
X redefined video_total_views as 100% in-view for 3 seconds plus manual plays. What that means for your first 3 seconds, and how to check and re-cut them.
- X animated GIF limit: 15 MB, 350 frames, and the MP4 alternative
X allows an animated GIF up to 15 MB and recommends 1280x1080 and 350 frames or fewer. Sume makes MP4 video, not GIF, so attach a short MP4 instead.
- X API 403 "not allowed to post a video longer than N minutes"
The 403 means the clip exceeds the posting account's cap: 20 minutes by default, 125 for Premium or verified. Cut the video to that cap before you post.
Written by Sume