如何用 FFmpeg 压缩视频

2026/03/03

视频文件太大会占用存储空间、拖慢上传速度。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.mp4

H.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 直接在浏览器中压缩视频,无需命令行。

延伸阅读

FFHub

FFHub