视频太大发不出去?折腾了一周压缩方案,说点实际经验 上个月给客户做 demo 视频手机拍的 4K 素材一个片段就 600MB微信发不出去、邮箱附件超限、网盘上传又慢。折腾了一周试了七八种压缩方式踩了不少坑记录一下。文件大小的决定因素公式其实很简单文件大小 ≈ 码率 × 时长 ÷ 8。一个 10 分钟的视频50Mbps 码率就是 375MB降到 20Mbps 就是 150MB。关键是怎么降码率又不让画质崩。码率控制模式有三种。CBR 固定码率输出大小可预测但画面复杂时糊成马赛克、简单时浪费带宽。VBR 可变码率好一些复杂场景多分配码率、简单场景少分配。CRF 最实用——告诉编码器你想要多高质量它自己调节码率。我一般用 CRF 23画质基本看不出损失体积能压到原来的 1/3。编码格式的取舍H.264 兼容性最好几乎所有设备和浏览器都能硬解。H.265 同画质下码率少 30%-50%但 Windows 上播放可能要装 HEVC 扩展。AV1 压缩率最高但编码慢得离谱。个人做法公开发布或发给客户一律用 H.264免得对方打不开个人存档用 H.265。给微信发视频用 H.264 降到 2-5Mbps 就够了微信自己也会二次压缩。分辨率降还是不降4K 降到 1080p码率需求降到原来的 25%这是最直接的瘦身方式。如果对方在手机上看720p 和 1080p 差别不大降到 720p 又能再省一半。60fps 降到 30fps 同样省一半但游戏录屏建议保留 60fps。试过的几个方案HandBrake 是最顺手的桌面软件GUI 操作直观支持批量队列。FFmpeg 功能最强但学习曲线陡适合写脚本批量处理。91aitool 的视频压缩是纯前端方案用 WebAssembly 跑 FFmpeg视频不用上传到服务器数据安全有保障。适合随手压缩几段短视频发微信——浏览器打开就能用不用装软件。格式工厂用过一段时间但预设参数偏保守同画质下体积比 HandBrake 大。剪映导出时选更小体积适合手机端操作但可控参数太少。关于 CRF 的一点经验CRF 值常用范围是 18-3318几乎看不出差别适合后期制作阶段的素材23x264 默认值日常够用28能看出压缩痕迹适合存档不常用的视频33只适合发微信预览正式场合别用有个坑如果原始视频已经是高压缩率的 H.265再压缩基本没空间了。压缩前用 ffprobe 看一眼原始参数ffprobe -v error -select_streams v:0 -show_entries streamcodec_name,bit_rate -of defaultnoprint_wrappers1 input.mp4个人流程总结微信临时发91aitool 设目标大小几十秒出结果。批量存档HandBrake 建 H.265 CRF 28 预设拖进去统一跑。发给客户H.264 CRF 18分辨率降 1080p——打不开比文件大更麻烦。