Tags:微信 视频 二压 压缩 比特率
0. 瞎 bb
最近常用 PC 微信发视频,发现其除了 25MB 的大小限制外,还有隐藏的限制。触发限制后会被二压,二压后分辨率大约会在 360P 上下,没法看。
去互联网搜了一圈,发现都是在瞎扯,【微信视频被压缩?这2个传输技巧让你不发愁!】、【如何压缩又小又清晰的视频,方便微信传播】这些营销号甚至还建议手动压视频到 360P。就很离谱。
1. 二压规则结论
互联网上没有答案,只能手动研究、测试。这里直接给出答案,【全网首发!独家!】微信对视频分享有且仅有码率限制:
Video bit rate:600 kb/s
Audio bit rate:48 kb/s
音频比特率过大,那仅仅会被强制压回 48kb/s,这倒没什么。
视频比特率过大,则会触发视频二压,那会被压得很惨了。
2. 如何规避二压
接下来的压缩方式以 ffmpeg 举例。
第一种压缩方式,直接设置 -b:a 和 -b:v 目标码率。但是直接设置 600kb/s 可能实际会超过 600kb/s,所以一般建议比目标码率低一些,例如设置 590kb/s。压缩完一定要手动检查,避免超过 600kb/s。
ffmpeg -y -hide_banner -i "in.mp4" -b:a 48k -b:v 590k "out.mp4"
第二种压缩方式,调节 crf 参数。这种方法压出来的视频在同码率下会更为清晰,但是 crf 值要设置多少是个问题。只能利用二分的方式去尝试,极度耗时间。
ffmpeg -y -hide_banner -i "in.mp4" -c:v libx264 -crf 23.5 -preset slow -qcomp 0.5 -psy-rd 0.3:0 -aq-mode 2 -aq-strength 0.8 -b:a 48k "out.mp4"
提醒下,Windows 右键属性里的数据速率,并不是视频比特率。建议使用优秀的视频播放器、工具进行查看比特率,视频真实的比特率可能会比数据速率更大。
最后,推荐一个轻量视频处理软件:QuickCut。预设多套方案(包括我这俩行代码也是参考此软件),参数能够实时显示、修改,作为一只 Linux 码农表示很愉悦。另外,生成完视频,日志里有写比特率,结合上一段所述,很方便。
3. 如何规避二压 PLUS
最后的最后,再教个小技巧,如何突破微信这 600kb/s 的桎梏!
「加后黑」
微信发视频时,只检查「文件大小」和「平均码率」。所以我们可以拼接一段纯黑视频,从而把「平均码率」降低到 600kb/s 以下。
例如长度 10s 的 6000kb/s 视频,视频后拼接一个 90s 的纯黑视频,那么码率就到 600kb/s 了。
4. END
为了能在微信发高画质的 Overwatch 亮眼表现,研究了这么多,感觉自己也是很顶了。
5. 续
2024 年 7 月,重新测试码率限制:
Video bit rate:1600 kb/s
Audio bit rate:??? kb/s(实测 400+kb/s 都未触发二压)