halfsize

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

  1. Install Node.js 18+.
  2. Open a terminal in the folder with the video.
  3. Run npx halfsize clip.mp4 --for wechat.
  4. Send the generated clip.20mb.mp4 as 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

TargetResolution chosenVideo bitrateVMAFVerdict
20 MB1280×7202.46 Mbps88.3slight softening
16 MB960×5401.94 Mbps84.8slight softening
10 MB960×5401.17 Mbps82.9slight 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

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.

More size limits