guide8 分钟阅读

FFmpeg CRF 实例:H.264/H.265/VP9/AV1 最佳 CRF 值推荐(2026)

可直接复制的 FFmpeg CRF 命令:H.264(CRF 18-23)、H.265(CRF 22-28)、VP9、AV1。含画质与文件大小对照表和各场景推荐值。

作者:Gisg

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)会导致明显的压缩伪影:复杂场景出现块状区域、细节丢失、渐变处出现色带、纹理涂抹模糊。画质变差的具体阈值取决于内容——高速运动的体育画面比静态讲话的画面更快出现劣化。

标签

ffmpeg crf examplescrf ffmpegffmpeg crf 设置crf 值推荐最佳 crf 值ffmpeg crf h264ffmpeg crf h265视频压缩ffmpeg 编码