halfsize / 平台上限
各平台的视频大小上限,一张表
每个平台都写了一个上限,但几乎每个上限的算法都和系统里显示的数字不一样。下面是人真正会撞到的限制, 2026 年 11 月核对,以及每个限制对应的一条命令。
当前上限
| 平台 | 上限 | 按什么算 | 怎么压 |
|---|---|---|---|
| Discord(免费) | 20 MB | 单个文件、单条消息 | --for discord |
| 16 MB | 作为媒体发送的视频 | --for whatsapp | |
| 微信 | 20 MB | 聊天里发送的视频 | --for wechat |
| Gmail | 25 MB | base64 之后的整封邮件 | --for gmail |
| Outlook.com | 20 MB | base64 之后的整封邮件 | --for outlook |
| X / Twitter | 512 MB | 单条视频上传 | --for twitter |
| Telegram | 2 GB | 单个文件,会员 4 GB | --to 2gb |
| Slack(免费) | 1 GB | 单个文件 | --to 1gb |
| YouTube | 256 GB | 单次上传,最长 12 小时 | 不是这个场景 |
平台会不打招呼就改上限,付费档位也不一样。预设只是省事,--to 永远优先。
为什么「显示 20 MB」却传不上去
有三笔账会一起吃进上限,而且是叠加的:
- 十进制和二进制。平台说的是 20,000,000 字节,Windows 和 macOS 往往显示成 19.07 MiB 并写成 19 MB。你以为刚好 20 MB 的文件,其实已经超了。
- 邮件的 base64。附件按文本编码,3 个字节变 4 个。20 MB 的文件进邮件会变成约 26.7 MB,在 25 MB 的 Gmail 直接被退。发邮件要压到 18 MB,20 MB 的企业邮箱压到 15 MB。
- 容器和音轨。上限算的是整个文件,不是视频流。封装开销和音轨都占预算,所以工具会先把它们扣掉再算码率。
经验值:普通上传留 5% 余量;邮件附件先除以 1.37。--for 已经帮你算好了。
一条命令对应一个上限
$ npx halfsize 假期.mp4 --for discord
target 20.0 MB
plan H.264 1280x720 2.46 Mbps audio 128 kbps 2-pass
scale 1920x1080 → 1280x720
output 假期.discord.mp4
136 MB → 19.45 MB 小 7.0 倍 比目标小 2.7%
VMAF 88.3 SSIM 0.971 轻微变软
换成你要对付的平台就行:--for whatsapp、--for wechat、
--for gmail、--for outlook、--for twitter。其他限制直接写
--to 800mb 或 --to 700k。
每个上限要付出多少画质
同一个 60 秒 1080p30、18 Mbps 的源片(136 MB),在普通笔记本上本地实测:
| 目标 | 输出 | 分辨率 | VMAF | 结论 |
|---|---|---|---|---|
| 20 MB(Discord / 微信) | 19.45 MB | 1280×720 | 88.3 | 轻微变软 |
| 18 MB(Gmail) | 17.62 MB | 1280×720 | 87.4 | 轻微变软 |
| 16 MB(WhatsApp) | 15.59 MB | 960×540 | 84.8 | 轻微变软 |
| 10 MB | 9.77 MB | 960×540 | 82.9 | 轻微变软 |
| 5 MB | 4.93 MB | 640×360 | 72.0 | 能看出损失 |
VMAF 90 以上是「几乎看不出差别」,80–90 是轻微变软,70–80 是能看出损失。实际数字随内容变化,讲话镜头比彩带雪花好压得多。
目标在算术上就做不到的时候
上限本质是码率预算:字节 × 8 ÷ 秒。一小时的视频塞进 20 MB,视频加音频只有 44 kbps, 没有编码器能让它好看。0.1.9 起,工具会在编码前直接说明,并告诉你这段时长最小能压到多少, 而不是花十分钟压完再交给你一个还是塞不进去的文件。真正的解法是剪短。
常见问题
为什么 20 MB 的文件传不进 20 MB 的限制?
十进制 MB 和二进制 MiB 的差别、邮件 base64、容器开销都会吃预算。留 5% 余量,或者直接用预设。
Discord 免费用户上限多少?
2026 年 11 月是单个文件 20 MB,Nitro 更高。档位不同就用 --to 覆盖。
微信发视频会被二次压缩吗?
作为聊天视频发送会被再压一次,而且只有 20 MB。先自己压到限制以内,至少损失是可控的。
能压到 2 GB 这种大目标吗?
可以,前提是源片有足够码率可花。短视频撑不满大上限,超长视频也塞不进小上限。
视频会被上传吗?
不会。FFmpeg 在你自己的电脑上跑,免账号、无额度、无水印。