FFmpeg CRF 实例:H.264/H.265/VP9/AV1 最佳 CRF 值推荐(2026)
可直接复制的 FFmpeg CRF 命令:H.264(CRF 18-23)、H.265(CRF 22-28)、VP9、AV1。含画质与文件大小对照表和各场景推荐值。
FFmpeg CRF 实例:从入门到精通
CRF(Constant Rate Factor,恒定质量因子)是 FFmpeg 中最常用的码率控制模式,能够在保证画面质量的同时实现高效的文件压缩。与恒定码率编码不同,CRF 让编码器根据画面内容动态分配比特,在需要高码率的复杂场景多分配比特,在简单场景少分配比特,从而实现全片一致的感知画质。
本指南提供了各主流编码器的完整 CRF 命令实例,附带详细的画质等级与文件大小对照表。无论你是为流媒体、归档存储、社交媒体还是专业工作流编码,都能在这里找到合适的 CRF 参数。
如果你对 CRF 概念还不熟悉,建议先阅读我们的 CRF 入门基础指南。
CRF 在 FFmpeg 中的工作原理
CRF 为整个编码过程设定一个统一的画质目标。编码器随后逐帧调整码率以维持该画质水平:运动复杂或细节丰富的场景获得更多比特,静态场景则使用更少比特。
CRF 编码的核心特点:
- 单次编码:无需像两遍 VBR 那样分析两次视频,编码速度更快
- 以画质为导向:输出以感知画质为目标,而非特定的文件大小
- 可变码率:实际码率随画面内容复杂度波动
- 默认无码率上限:如不额外设置参数,文件大小难以预测(可通过
-maxrate和-bufsize加以限制)
当你重视画质且对文件大小要求灵活时,CRF 是最佳选择。若需要精确控制文件大小,建议改用两遍 VBR。关于各种码率控制方法的详细对比,请参阅我们的 视频压缩方法 CRF 指南。
各编码器的 CRF 取值范围
不同编码器使用不同的 CRF 标尺,这是最常见的混淆来源——H.264 的 CRF 23 与 VP9 的 CRF 23 所代表的画质完全不同。
| 编码器 | CRF 范围 | 默认值 | 视觉无损 | 推荐范围 | 数值越低 = |
|---|---|---|---|---|---|
| H.264 (libx264) | 0-51 | 23 | ~17-18 | 18-28 | 画质越好 |
| H.265 (libx265) | 0-51 | 28 | ~20-22 | 22-32 | 画质越好 |
| VP9 (libvpx-vp9) | 0-63 | 31 | ~15-20 | 20-40 | 画质越好 |
| AV1 (libaom-av1) | 0-63 | 32 | ~18-23 | 20-40 | 画质越好 |
| AV1 (libsvtav1) | 0-63 | 35 | ~20-25 | 22-45 | 画质越好 |
重要提示:
- CRF 0 对应 H.264 和 H.265 的无损输出(文件极大)
- CRF 值越低,画质越高,文件越大
- 对于 H.264,相邻 CRF 值之间的文件大小差异约为 6%
H.264 (libx264) CRF 实例
H.264 是兼容性最好的编码器。关于 H.264 与 H.265 的详细对比,请参阅 H.264 与 H.265 对比指南。
基础 H.264 CRF 编码
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
H.264 CRF 预设调优
-preset 参数控制编码速度与压缩效率之间的平衡。更慢的预设在相同 CRF 值下生成更小的文件。
## 快速编码,文件较大
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast -c:a aac -b:a 128k output_fast.mp4
## 均衡模式(默认)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output_medium.mp4
## 慢速编码,同等画质下文件更小
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k output_slow.mp4
## 极慢速,最佳压缩效果(适合归档)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset veryslow -c:a aac -b:a 128k output_veryslow.mp4
H.264 不同用途的推荐 CRF 值
| 使用场景 | 推荐 CRF | 预设 | 说明 |
|---|---|---|---|
| 归档 / 母版 | 17-18 | veryslow | 视觉无损,文件较大 |
| 高画质流媒体 | 19-21 | slow | 画质优秀,文件适中 |
| 通用用途 | 22-24 | medium | 画质与体积的理想平衡 |
| 社交媒体上传 | 23-26 | medium | 平台会重新编码 |
| 带宽受限场景 | 26-28 | medium | 复杂场景画质有所下降 |
| 快速预览 / 草稿 | 30-35 | ultrafast | 明显的压缩痕迹,文件极小 |
带码率上限的 H.264 CRF(受限 CRF)
需要 CRF 画质控制同时防止码率突增时:
## CRF 22,最大码率 8 Mbps
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -maxrate 8M -bufsize 16M -preset medium -c:a aac -b:a 128k output.mp4
H.264 CRF 输出文件大小参考(1080p,60 秒)
| CRF 值 | 大致文件大小 | 画质描述 |
|---|---|---|
| 17 | 85-120 MB | 视觉无损 |
| 20 | 50-75 MB | 极佳,几乎无法区分 |
| 23 | 30-50 MB | 很好,默认画质 |
| 26 | 18-30 MB | 良好,复杂场景轻微瑕疵 |
| 30 | 10-18 MB | 可接受,画面明显偏软 |
| 35 | 5-10 MB | 较差,明显的块状伪影 |
实际文件大小随内容复杂度、分辨率和帧率变化显著。
H.265 (libx265) CRF 实例
H.265 在相同视觉画质下比 H.264 的压缩效率高约 50%。详见 H.264 与 H.265 编码对比。
基础 H.265 CRF 编码
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -c:a aac -b:a 128k -tag:v hvc1 output.mp4
-tag:v hvc1 参数确保在 Apple 设备和 QuickTime 上的兼容性。
H.265 不同用途的推荐 CRF 值
| 使用场景 | 推荐 CRF | 预设 | 说明 |
|---|---|---|---|
| 归档 / 母版 | 20-22 | slow | 视觉无损,比 H.264 小约 40% |
| 高画质流媒体 | 23-25 | medium | 画质优秀 |
| 通用用途 | 26-28 | medium | 出色的画质体积比 |
| 存储受限 | 30-32 | medium | 可见压缩痕迹 |
| 移动端分发 | 28-32 | fast | 适合移动端观看的平衡设置 |
H.265 10-bit 编码
10-bit 编码可减少渐变色带,即使源素材为 8-bit 也常能提升压缩效率:
ffmpeg -i input.mp4 -c:v libx265 -crf 26 -preset medium -pix_fmt yuv420p10le -c:a aac -b:a 128k -tag:v hvc1 output.mp4
H.265 CRF 输出文件大小参考(1080p,60 秒)
| CRF 值 | 大致文件大小 | 画质描述 |
|---|---|---|
| 20 | 45-65 MB | 视觉无损 |
| 24 | 25-40 MB | 画质优秀 |
| 28 | 15-25 MB | 很好,默认画质 |
| 32 | 8-15 MB | 良好,轻微瑕疵 |
| 36 | 4-8 MB | 可用于预览 |
VP9 (libvpx-vp9) CRF 实例
VP9 免版税,所有现代浏览器均支持。关于 VP9 与其他网页编码器的对比,请参阅 AV1 vs VP9 vs H.264 指南。
基础 VP9 CRF 编码
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 31 -b:v 0 -c:a libopus -b:a 128k output.webm
VP9 的 CRF 模式必须配合 -b:v 0 参数使用,否则 CRF 将无法正常工作。
VP9 两遍 CRF 编码(推荐以获得最佳效果)
VP9 在两遍编码下效果显著提��:
## 第一遍
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -pass 1 -an -f null /dev/null
## 第二遍
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -pass 2 -c:a libopus -b:a 128k output.webm
VP9 不同用途的推荐 CRF 值
| 使用场景 | 推荐 CRF | 说明 |
|---|---|---|
| 高画质网页分发 | 20-25 | 画质优秀 |
| YouTube 式流媒体 | 28-33 | 良好的平衡点 |
| 一般网页视频 | 31-36 | 默认范围 |
| 带宽优化 | 38-42 | 画质有明显下降 |
VP9 行级多线程加速
大幅提升 VP9 编码速度:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -row-mt 1 -threads 8 -c:a libopus -b:a 128k output.webm
AV1 CRF 实例
AV1 是目前压缩效率最高的主流编码器,免版税,且硬件解码支持日益普及。
使用 libaom 编码 AV1(参考编码器)
## 基础 AV1 CRF 编码(速度较慢但画质最佳)
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -cpu-used 4 -c:a libopus -b:a 128k output.webm
-cpu-used 参数范围为 0(最慢,画质最优)到 8(最快),4-6 是较好的平衡选择。
使用 SVT-AV1 编码(更快的编码器)
SVT-AV1 编码速度远快于 libaom,画质接近:
## SVT-AV1 编码(推荐大多数用户使用)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus -b:a 128k output.webm
SVT-AV1 预设范围为 0(最慢)到 13(最快),preset 6-8 在速度与画质之间取得良好平衡。
AV1 不同用途的推荐 CRF 值
| 使用场景 | libaom CRF | SVT-AV1 CRF | 说明 |
|---|---|---|---|
| 归档画质 | 18-22 | 20-25 | 接近无损 |
| 高画质流媒体 | 25-30 | 28-33 | 适合 4K 内容 |
| 网页分发 | 30-35 | 33-38 | 良好的平衡 |
| 带宽受限 | 38-45 | 40-48 | 移动端可接受 |
AV1 CRF 输出文件大小参考(1080p,60 秒)
| CRF 值(SVT-AV1) | 大致文件大小 | 画质描述 |
|---|---|---|
| 22 | 35-50 MB | 接近无损 |
| 28 | 18-30 MB | 画质优秀 |
| 33 | 10-18 MB | 很好 |
| 38 | 5-10 MB | 良好,高效 |
| 45 | 2-5 MB | 预览可用 |
各编码器 CRF 等效画质对照
以下 CRF 值可产生大致等效的视觉画质(约为"很好"的通用画质水平):
| 编码器 | 等效 CRF | 大致文件大小(1080p, 60秒) | 编码速度 |
|---|---|---|---|
| H.264 (libx264) | 23 | 35-50 MB | 快 |
| H.265 (libx265) | 28 | 18-28 MB | 中等 |
| VP9 (libvpx-vp9) | 31 | 16-25 MB | 慢 |
| AV1 (libsvtav1) | 33 | 12-20 MB | 中慢 |
| AV1 (libaom-av1) | 30 | 10-18 MB | 极慢 |
此表清楚展示了新编码器的存在意义:AV1 在等效画质下可产生比 H.264 小 50-60% 的文件。代价是编码速度和兼容性。
进阶 FFmpeg CRF 技巧
受限 CRF 用于流媒体
需要以画质为导向的编码同时遵守最大码率限制时(用于流媒体或 CDN 分发):
## H.264 受限 CRF,1080p 流媒体
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -maxrate 6M -bufsize 12M -preset slow -profile:v high -level 4.1 -c:a aac -b:a 128k output.mp4
## H.265 受限 CRF,4K 流媒体
ffmpeg -i input.mp4 -c:v libx265 -crf 26 -maxrate 15M -bufsize 30M -preset medium -tag:v hvc1 -c:a aac -b:a 128k output.mp4
CRF 搭配编码调优选项
## 电影内容(实拍)
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset slow -tune film -c:a aac -b:a 128k output.mp4
## 动画 / 卡通内容
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset slow -tune animation -c:a aac -b:a 128k output.mp4
## 保留胶片颗粒(复古风格内容)
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset slow -tune grain -c:a aac -b:a 128k output.mp4
## 零延迟直播
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast -tune zerolatency -c:a aac -b:a 128k output.mp4
针对特定分辨率的 CRF 设置
## 720p 编码
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -vf "scale=1280:720" -preset medium -c:a aac -b:a 128k output_720p.mp4
## 4K H.265 编码
ffmpeg -i input_4k.mp4 -c:v libx265 -crf 26 -preset medium -tag:v hvc1 -c:a aac -b:a 192k output_4k.mp4
关于 720p 分辨率的码率与压缩详细指导,请参阅 720p 压缩与码率指南。
批量 CRF 编码
对目录下所有视频文件执行编码:
for f in *.mp4; do
ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k "encoded_${f}"
done
CRF 测试流程
在对大批量素材执行编码前,先用短片段测试:
## 截取 30 秒测试片段
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c copy test_segment.mp4
## 以多个 CRF 值编码
for crf in 20 23 26 28; do
ffmpeg -i test_segment.mp4 -c:v libx264 -crf $crf -preset medium -c:a aac -b:a 128k "test_crf${crf}.mp4"
done
对比输出视频的画质和文件大小,找到最适合你素材的 CRF 值。
常见 CRF 错误
跨编码器混用 CRF 值:CRF 23 是 H.264 的默认值,但 H.265 的默认值是 28。对 H.265 使用 CRF 23 会产生不必要的大文件。
忽视预设参数:CRF 并不是决定文件大小的唯一因素。更快的预设在相同 CRF 下产生更大的文件,因为编码器投入更少的时间寻找高效压缩方案。
VP9 遗漏 -b:v 0 参数:VP9 必须搭配 -b:v 0 才能启用真正的 CRF 模式,否则编码器会使用不同的码率控制算法。
用 CRF 0 追求"最佳画质":CRF 0 产生无损输出,文件极大。如需视觉无损,H.264 建议使用 CRF 17-18,H.265 建议 CRF 20-22。
H.265 遗漏 -tag:v hvc1:缺少此标签会导致 H.265 文件无法在 Apple 设备或 Safari 上播放。
用 Vibbit 简化视频编码
如果 FFmpeg 命令行让你感到无所适从,Vibbit 视频压缩工具可以通过可视化界面实现同等的画质优先压缩。上传视频,选择目标画质或文件大小,工具将自动处理所有编码参数。如需格式转换并获取最佳设置,请试试我们的视频转换工具。
常见问题
FFmpeg 的最佳 CRF 值是多少?
没有统一的"最佳" CRF 值,它取决于编码器、内容类型和画质需求。对于 H.264 (libx264),CRF 22-24 是通用编码的良好起点;对于 H.265 (libx265),CRF 26-28 可产生等效画质。建议始终用素材的短片段进行测试以找到最优值。
CRF 会影响编码速度吗?
CRF 本身对编码速度影响极小,真正影响速度的是 -preset 参数。较高的 CRF(画质更低)会让编码器稍快完成,但这与将预设从 fast 改为 slow 带来的速度差异相比微不足道。
CRF 能用于直播吗?
单独使用 CRF 不适合直播,因为它产生不可预测的码率。对于直播场景,应使用受限 CRF(添加 -maxrate 和 -bufsize 参数),或改用 CBR/VBR 码率控制。-tune zerolatency 选项也有助于降低编码延迟。
什么 CRF 值能保持与原片相同的画质?
CRF 0 产生数学意义上的无损输出(与源文件完全相同),但文件体积惊人。如需在视觉上与源文件无法区分的输出,H.264 建议使用 CRF 17-18,H.265 建议 CRF 20-22,VP9 建议 CRF 15-20。
H.264 和 H.265 的 CRF 值如何换算?
大致等效关系为:H.265 CRF 约等于 H.264 CRF + 4 到 5。因此 H.264 CRF 23 与 H.265 CRF 27-28 产生相似画质,但 H.265 的文件约小 40-50%。这是因为 H.265 拥有更高效的压缩算法,而非 CRF 标尺可以直接对照。
应该选择 CRF 还是两遍编码?
当你追求一致的画质且对文件大小没有硬性要求时,选择 CRF。当你有严格的文件大小或码率目标时(例如将视频压缩到 25 MB 以下用于邮件附件),选择两遍编码。CRF 更简单也更快,因为只需一遍编码。
CRF 设得太高会怎样?
CRF 过高(例如 H.264 超过 30)会导致明显的压缩伪影:复杂场景出现块状区域、细节丢失、渐变处出现色带、纹理涂抹模糊。画质变差的具体阈值取决于内容——高速运动的体育画面比静态讲话的画面更快出现劣化。