Back to Blog
·3 min read·quickvid-compress

视频压缩里的 CRF 到底是什么?给非工程师的实用指南

CRF 是现代视频编码里最有用的一个旋钮——但大多数教程把它解释错了。这篇讲它实际在做什么,附具体推荐参数。

如果你压缩过视频,肯定见过 CRF 这个词——出现在 ffmpeg 的参数里、HandBrake 的设置里、QuickVid 的「自定义」模式里。搜「CRF 是什么」一般得到两种没用的回答:

1. 「CRF 是恒定速率因子,用感知质量模型」(技术上对,实际没用) 2. 「用 CRF 23 就好」(不解释为什么)

这篇是我第一次接触 CRF 时希望读到的版本。无数学公式,配实际推荐参数。

CRF 到底是什么

CRF 是你喂给视频编码器(H.264、HEVC、AV1)的一个数字,控制每帧被压缩的激进程度。然后编码器按这个质量目标编完整个视频——不管最终文件多大

最后那句话是关键。

另一种方式——目标比特率(比如「按 2 Mbps 编码」)——是相反哲学:你先承诺一个文件大小,编码器尽力把视频塞进去。安静的场景过度分配比特,混乱的场景分配不够。

CRF 翻转这个:编码器需要多少比特就花多少比特来命中你的质量目标。一段安静的访谈视频可能编码到 500 Kbps;同一文件里的快动作镜头可能膨胀到 8 Mbps。编码器对每一帧需要多少比特是诚实的。

对于大多数「压缩这个视频好分享」的场景,CRF 是对的旋钮。目标比特率适用于目的地有硬性上限的场景(微信 25 MB、Discord 25 MB、Twitter 比特率上限)。

数字怎么读

CRF 范围大致 0 到 51数字越小,质量越高,反直觉地文件越大。

| CRF | 看起来怎样 | 常见用途 | |---|---|---| | 0 | 视觉无损。文件巨大 | 母版、归档 | | 18 | 「视觉透明」——大多数内容上看不出差别 | 编辑副本、专业交付 | | 23 | H.264 默认值。网页视频均衡选择 | 大多数在线视频 | | 28 | 可见但可接受的伪影。文件明显更小 | 压缩后分享、社交媒体 | | 35+ | 明显低质量 | 旧手机、低带宽 |

H.264 具体来说,几个经验法则成立:

  • CRF 17 被认为是「和原视频看不出差别」的阈值
  • CRF 23 是 libx264 的默认值(HandBrake 滑块默认停在这里)
  • CRF 28 开始看出压缩伪影,特别是阴影、渐变、快速运动

每 +6 的 CRF 大约让文件大小减半。从 CRF 23 升到 CRF 29 文件大约减半——伴随可察觉但通常可接受的质量损失。

HEVC(H.265)数字不一样

HEVC 的 CRF 刻度偏移:从 H.264 数字减约 6 得到 HEVC 等效值。

| H.264 CRF | HEVC CRF | 质量 | |---|---|---| | 18 | 22 | 视觉透明 | | 23 | 28 | 网页视频默认 | | 28 | 32 | 压缩分享 |

所以 libx264 -crf 23libx265 -crf 28 在质量上。HEVC 同等质量下文件通常小 30-50%,但编码慢 2-4 倍。

AV1 数字非常不一样

AV1(标 AV1 的 .mp4 文件或 .webm)用 CRF 0-63 范围,偏移更大:

| H.264 CRF | AV1 CRF | 质量 | |---|---|---| | 18 | 28 | 视觉透明 | | 23 | 35 | 网页视频默认 | | 28 | 45 | 压缩分享 |

AV1 同等质量下比 HEVC 小,但编码慢 5-20 倍。2026 年 AV1 最适合「大容量内容库归档」——计算便宜、字节贵的场景。

编码器预设也很重要

CRF 旁边,每个现代编码器还有一个 preset 标志控制编码器多卖力:

`` ultrafast → superfast → veryfast → faster → fast → medium → slow → slower → veryslow → placebo ``

预设越快 = 编码越快,文件越大(同等 CRF)。预设越慢 = 算力越多,文件越小。

x264 来说:

  • ultrafast 比 medium 快约 8 倍,但同等 CRF 文件大约大 30%
  • medium 是默认值——大多数用户应该停在这里
  • slow 比 medium 慢约 30%,但文件小约 10%
  • veryslow 编码时间翻倍换边际收益——递减收益

大多数「为上传压缩」场景,medium 是对的预设slow 只在你会从同一源文件多次重编码且时间值得的时候用。

实用 CRF 配方表

| 任务 | 编码器 | CRF | 预设 | 预估大小(1 分钟 1080p) | |---|---|---|---|---| | 归档原画质 | H.264 | 17 | slow | ~250 MB | | YouTube 上传 | H.264 | 20 | medium | ~120 MB | | 邮件附件 | H.264 | 26 | medium | ~25 MB | | Discord(25 MB 以内)| H.264 | 28 | medium | ~18 MB | | Twitter / X 视频 | H.264 | 23 | medium | ~50 MB | | iMessage 给苹果用户 | HEVC | 24 | medium | ~70 MB | | iMessage 回落到邮件 | H.264 | 28 | medium | ~20 MB | | 微信发给手机用户 | H.264 | 28 | medium | ~18 MB | | 家庭视频手机备份 | HEVC | 22 | slow | ~110 MB |

数字是近似——实际大小取决于内容(运动、细节、色彩)和源比特率。当作起点。

ffmpeg 一行命令

```bash

H.264 CRF 23、medium 预设、AAC 音频——最通用配方

ffmpeg -i input.mov -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

HEVC CRF 28 文件更小——苹果生态

ffmpeg -i input.mov -c:v libx265 -crf 28 -preset medium -tag:v hvc1 -c:a aac -b:a 128k output.mp4

想精确命中文件大小:先试 CRF 28,再调

ffmpeg -i input.mov -c:v libx264 -crf 28 -preset medium -c:a aac -b:a 96k output.mp4 ```

HEVC 的 -tag:v hvc1 标志对苹果生态很重要——没有它,QuickTime、iOS Messages、Final Cut 可能拒绝播放。

CRF 在大多数场景比比特率好的三个理由

1. 整段视频的画质一致。 目标比特率编码会在快动作场景分配不足(你看到压缩伪影)、在安静场景分配过度(浪费比特)。CRF 把比特花在需要的地方。

2. 对文件大小诚实。 如果你设 CRF 23 结果文件是 200 MB 而不是你希望的 50 MB——那是编码器告诉你这个内容在那个质量下确实需要这么多比特。目标比特率会硬塞到 50 MB,但结果有伪影。

3. 更容易推理。 「CRF 23」是可移植的。同 CRF 在相似内容上产生相似质量。「2 Mbps」完全取决于分辨率、帧率、运动——480p 网课足够的码率,4K 体育就饿死。

CRF 不适用的场景

几个合理的用目标比特率而不是 CRF 的理由:

  • Discord 25 MB 上限,精准命中。要文件恰好 24.5 MB 不管怎样。算好比特率,瞄准它。
  • 流媒体或固定带宽。RTMP、HLS、DASH 都要求比特率恒定输出。
  • 二次编码归档-b:v + 二次编码产生极一致的文件大小,交付规格有要求时有用。
  • 特定交付编码(广播 TV、Blu-ray)——规格里有严格比特率包络。

日常「压缩一段视频好分享」——CRF 胜。

GUI 应用里 CRF 在哪

每个主流 Mac 视频工具都暴露 CRF,有时叫别的名字:

  • HandBrake:视频标签上的「质量」滑块就是 CRF(标 "RF" — Rate Factor,同一个数)
  • Compressor(Final Cut 配套):隐藏在高级编码器设置里;默认是按比特率
  • QuickVid Compress:Pro 版自定义模式暴露 CRF;预设内部用 CRF 22-30
  • ffmpeg:显式 -crf N 标志

如果你想要 CRF 控制但不想记 ffmpeg 标志,QuickVid 的 Pro 模式是温柔的过渡。

最后一个心智模型

把 CRF 想成 JPEG 的质量滑块,但用于视频。JPEG 质量 80 意思是「每块编码到感知质量目标 80」。CRF 23 意思是「每帧编码到感知质量目标 23」。

数字方向相反(CRF 低 = 质量高,和 JPEG 质量相反)但概念一模一样。一旦你内化了这个,视频压缩的其余部分就好理解多了。

结语

如果你每月不止一次压缩视频,存这篇或者收藏 CRF 配方表。简短版本:

  • CRF 23 H.264 medium = 通用正确答案
  • CRF 28 HEVC medium ≈ 同等质量,小 30%,仅限苹果生态
  • CRF 30 H.264 medium = 「能塞进任何聊天 App」的答案
  • CRF 18 H.264 slow = 归档级质量

要拖放代替打标志:QuickVid Compress 把这些配方封装成命名模式。CRF 数学不变;UI 只是把它藏起来。

常见问题

视频压缩用哪个 CRF 最好?

CRF 23 是 libx264 默认值,能产出视觉高质量的 H.264 视频,文件通常是源大小的 50-80%。HEVC 对应是 CRF 28。要近无损归档:H.264 CRF 18。要激进压缩接受可见伪影:CRF 28-30。

CRF 18 是无损吗?

不是——CRF 18 是「视觉透明」或「视觉无损」,数学上仍然丢失信息相对于源。真无损 H.264 要 -crf 0--lossless 标志,产生的文件大约和原始原始视频一样大。CRF 18 是视频专业人员说的「透明质量」——正常播放下和源看不出差别。

CRF 和比特率有什么区别?

CRF 瞄准感知质量水平,让文件大小随内容复杂度变化。目标比特率(比如 -b:v 2M,2 Mbps)固定文件大小让质量变化。要整段视频质量一致用 CRF;要特定文件大小适配上传限制用目标比特率。

CRF 在 HEVC 和 AV1 里也能用吗?

可以,但数值刻度偏移。H.264 CRF 23 ≈ HEVC CRF 28 ≈ AV1 CRF 35 在质量上相似。每个编码器有自己的量化数学,但原理相同:数字越小质量越高、文件越大。

怎么在 HandBrake 里用 CRF?

HandBrake 视频标签上的「质量」滑块就是 CRF(标 RF)。设到你的目标——20 高质量、23 通用、26 文件较小。确保选了「恒定质量」单选(不是「平均比特率」)。视频编码器选 H.264 (x264) 或 H.265 (x265),视频模式选「恒定质量」。

#video#compression#crf#h264#hevc#mac#ffmpeg#中文

Written by

Peter Zhang

Building local-first Mac & iOS productivity apps at Obelisk Club.