视频文件太大会占用存储空间、拖慢上传速度。FFmpeg 可以轻松地从命令行压缩视频。本文介绍最实用的几种压缩技巧。如果你想了解更深入的压缩策略,还可以参阅视频压缩最佳实践。
用 CRF 快速压缩
最简单的压缩方式是使用 CRF(恒定质量因子)。值越低画质越好,值越高文件越小。
ffmpeg -i input.mp4 -crf 23 output.mp4| CRF 值 | 画质 | 适用场景 |
|---|---|---|
| 18 | 接近无损 | 存档 |
| 23 | 良好(默认) | 通用 |
| 28 | 中等 | 网络分享 |
| 32+ | 较低 | 优先小体积 |
如果你还需要转换容器格式(例如 MKV 转 MP4),请参阅视频格式转换指南。
选择合适的编码器
H.264 — 兼容性最好
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium output.mp4H.265 (HEVC) — 体积减半
H.265 在相同画质下文件体积可减少约 50%,但编码速度更慢。
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4预设:速度与体积的平衡
预设参数控制编码速度和压缩效率之间的权衡。
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow output.mp4| 预设 | 速度 | 文件大小 |
|---|---|---|
| ultrafast | 最快 | 最大 |
| fast | 快 | 较大 |
| medium | 均衡 | 均衡 |
| slow | 慢 | 较小 |
| veryslow | 最慢 | 最小 |
降低分辨率
降低分辨率是缩小文件体积最有效的方法之一。
# 缩放到 720p
ffmpeg -i input.mp4 -vf "scale=-2:720" -crf 23 output.mp4
# 缩放到 480p
ffmpeg -i input.mp4 -vf "scale=-2:480" -crf 23 output.mp4-2 会自动保持宽高比,并确保宽度能被 2 整除。
限制码率
如果有严格的文件大小要求或用于流媒体,可以设置最大码率:
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -maxrate 1M -bufsize 2M output.mp4同时压缩音频
别忘了音频轨道,降低音频码率也能减小体积:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4一条命令搞定
以下是一条适用于大多数场景的均衡压缩命令:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4这条命令能生成画质良好、体积显著减小的 MP4 文件,兼容几乎所有设备和平台。
在线试用
不想安装 FFmpeg?使用 FFHub 直接在浏览器中压缩视频,无需命令行。
延伸阅读
- FFmpeg 视频压缩最佳实践 - 更深入的压缩策略,兼顾画质与文件体积
- 如何用 FFmpeg 转换视频格式 - MP4、WebM、MKV、MOV 等格式互转,完全掌控编码器选择
- 如何用 FFmpeg 剪辑与合并视频 - 用简单命令裁剪片段和拼接视频

