halfsize / WeChat
Send a video on WeChat under 20 MB
WeChat's chat video limit is 20 MB. Anything larger either will not send or gets re-encoded into a blurry mess. Compress it yourself first, then measure what it cost.
Step by step
- Install Node.js 18+.
- Open a terminal in the folder with the video.
- Run
npx halfsize clip.mp4 --for wechat. - Send the generated
clip.20mb.mp4as a video in WeChat.
$ npx halfsize clip.mp4 --for wechat
halfsize 0.1.5
clip.mp4
136 MB 60s 1920x1080 30.00 fps h264
target 20.0 MB (wechat)
plan H.264 1280x720 2.46 Mbps audio 128 kbps 2-pass
output clip.20mb.mp4
measuring quality done in 8s
136 MB → 19.45 MB 7.0x smaller 2.7% under target
VMAF 88.3 SSIM 0.971 slight softening
Why compress it yourself?
WeChat applies its own compression when you send a video from the gallery. If you hand it a 200 MB file, its encoder has to throw away 90% of the bits in one pass, and the result looks it. If you hand it a 19.5 MB file that was already carefully encoded, it has almost nothing left to remove.
That is the whole trick: spend the bits deliberately before the chat app does it carelessly. halfsize also tells you the quality cost, so you can decide whether to trim the clip instead of accepting mush.
What 20 MB buys you
| Target | Resolution chosen | Video bitrate | VMAF | Verdict |
|---|---|---|---|---|
| 20 MB | 1280×720 | 2.46 Mbps | 88.3 | slight softening |
| 16 MB | 960×540 | 1.94 Mbps | 84.8 | slight softening |
| 10 MB | 960×540 | 1.17 Mbps | 82.9 | slight softening |
Measured on a 60 s 1920×1080 30 fps source at 18 Mbps. Quality depends on content, not just the number.
“Original video” is not a size setting. WeChat's original-video option avoids some re-compression but does not raise the 20 MB limit. You still need the file to fit.
Tips
- Trim first. A 30-second clip at 20 MB looks much better than a 3-minute one.
- Keep the default H.264. It is the most compatible choice for phones and older devices.
- Use the local web UI if you prefer.
npx halfsize --webopens a drag-and-drop interface in your browser; the file never leaves your computer. - Batch several clips.
npx halfsize a.mp4 b.mp4 --for wechat.
FAQ
What is WeChat's video size limit?
20 MB for videos sent in a chat. halfsize's --for wechat targets that cap.
Is my video uploaded anywhere?
No. Encoding and measurement run locally with FFmpeg. There is no account and no cloud quota.
Can I keep 1080p?
Yes, with --no-downscale. At 20 MB for a one-minute clip it will look softer than 720p, because the same bits are spread over more pixels.
Does it work with H.265?
Yes: --codec h265 gets roughly 30% more quality at the same size, but some older Android phones struggle with it. H.264 is safer for a family group chat.
What does VMAF mean?
It is a perceptual quality score from Netflix. Above 90 looks the same, 80–90 is slight softening, 70–80 is visible loss, below 70 is clearly degraded.