怎样压缩视频又看不出画质损失:H.264、H.265 与 AV1 对比
把视频文件变小,又看不出画质损失:在 H.264、H.265 和 AV1 之间做选择,设好码率或 CRF,再检查结果。免费工具和桌面软件的做法都有。
要点速览
想压缩视频又看不出画质损失,就从原始文件出发,用现代编码重新编码一次,画质参数要用眼睛确认过。文件必须在任何设备上都能播放时,H.264 是稳妥的选择。只要目标设备能解码,H.265 或 AV1 通常能在观感相近的前提下得到更小的文件。
先选编码,再一档一档地降低码率或提高 CRF,直到能看出差别为止,然后退回上一档。
- 文件大小 = 码率 × 时长。想让视频变小,就降低码率、换用效率更高的编码,或者降低分辨率或帧率。
- H.264、H.265 和 AV1 都是有损编码。现实的目标是:文件更小,而在实际观看的尺寸下没人看得出区别。
- H.264 的播放兼容性最广。H.265 和 AV1 的设计目标是用更低的码率达到相近的观感,但需要较新的解码器,编码也更耗时。
- 画质参数不能在编码器之间照搬:x264 的 CRF 23 和 x265、SVT-AV1 的 CRF 23 不是一回事。
- 从原始文件压缩,检查暗场和快速运动的镜头,不要对已经压缩过的文件再压一遍。
什么是视频压缩?
视频压缩就是去掉观众最不容易察觉的信息,用更少的数据把视频编码出来。
文件最终有多大,取决于三点:
- 码率:编码器每秒用掉多少比特。大小 ≈ 码率 × 时长。按 8 Mbps 算,一分钟视频是 8 × 60 ÷ 8 = 60 MB。
- 编码:画面的编码方式。较新的编码设计目标就是用更少的比特得到相近的观感。
- 分辨率和帧率:像素越多、帧越多,同样的画质就需要越多的比特。
容器(MP4、MKV、MOV、WebM)只是一层外壳。只换容器、不重新编码,文件大小几乎不变。
补充: 字面意义上的“不损失画质”,指的是保留画面每一个比特的编码方式,而这样做只会让文件更大,不会更小。本文讲的都是小到在正常观看尺寸下看不出来的损失。
H.264、H.265 与 AV1:该选哪种编码?
| 编码 | 别名 | 播放兼容性 | 编码速度 | 适合的情况 |
|---|---|---|---|---|
| H.264 编码 | 又称 AVC | 兼容面最广。YouTube 推荐上传 H.264 | 通常比另外两种快 | 文件必须到处都能播,或者上传到反正会重新编码的平台 |
| H.265 编码 | 又称 HEVC | 近几年的手机、电视和电脑大多支持;并非所有浏览器和旧设备都行 | 通常比 H.264 慢 | 想给确定支持它的设备做更小的文件,或者交付 4K、8K |
| AV1 编码 | 即 AOMedia Video 1 | 支持面在扩大;要留意旧设备和硬件解码 | 随预设变化很大;慢速预设耗时长得多 | 播放端支持它的网页分发和归档 |
| VP9 编码 | WebM 视频 | 网页浏览器和 YouTube | 比 H.264 慢 | 面向网页的 WebM 文件 |
没有哪种编码能通吃所有场景。按顺序回答下面两个问题,就能定下来:
- 在哪儿播放? 如果你控制不了播放设备,就选 H.264。
- 编码能等多久? AV1 和 H.265 是用编码时间换更小的文件。
开始之前:从最干净的原始文件压缩
有两个习惯比任何参数都重要:
- 从你手上画质最高的文件开始。 每做一次有损的重新编码,都会再丢掉一点信息。把已经为聊天软件或社交媒体压缩过的文件再压一遍,损失会层层叠加。
- 能先降噪就先降噪。 在编码器眼里,噪点和颗粒跟细微的细节没有两样,它会花比特去保留。压缩前先降噪,编码器就能把这些比特用在你真正在意的画面上。见怎样用 AI 给视频降噪。
方法 1:在 KwaFlux 转换器里压缩
KwaFlux 的转换器可以批量转换格式、编码和码率,和你用来修复、增强画质的是同一个软件。
- 打开转换器。 在侧边栏的工具分组里点击 转换器,会打开 格式转换 页面。
- 添加文件。 点击 添加文件,或者直接拖进来。点击列表里的一个文件,右侧的设置就会解锁。选中多个文件,可以给它们套用同一套设置。
- 选择输出格式。 在 视频 分组里,想要兼容性最广就选 MP4,用于浏览器播放就选 WEBM。然后选一个档位,例如 高清 1080P 或 高清 720P。
- 打开视频设置,选择编码。 MP4 的视频编码器包括 H.264、H.265 / HEVC 和 AV1;WebM 的视频编码器包括 VP8、VP9 和 AV1。
- 设置分辨率和码率。 先选 分辨率,再从该分辨率对应的列表里选一个 视频码率。MP4 的 高清 1080P 档位默认是 H.264 加 3 Mbps,属于小文件设置。在 1080p 下,H.264 和 AV1 可选 1 到 30 Mbps,H.265 可选 1 到 20 Mbps。如果切换到的编码或分辨率的列表里没有当前码率,KwaFlux 会改用该列表的默认值:H.264 和 AV1 是 8 Mbps,H.265 是 5 Mbps。这个档位默认是 30 fps,所以除非你有意改帧率,否则把 帧率 设成和源文件一样。
- 查看估算结果并开始。 页面会显示预计的输出大小。点击 全部开始,完成的文件会出现在 转换完成 下。

技巧: 如果只是容器不对(比如剪辑软件要 MOV,而你手上是 MP4),就选新格式的 与源文件相同 档位,在 视频设置 里把编码设成源文件本来就用的那种,并保持 高速转换 里的直接复制选项开启。这样 KwaFlux 会直接复制视频流,不再重新编码,文件上也会出现可直接复制的标记。FFmpeg 的 -c copy 也是这样做的,见方法 3。
关于剪辑时的容器和编码选择,见在本地转换视频格式。
方法 2:用 HandBrake 压缩(恒定画质)
HandBrake 是免费的开源软件,它的默认预设使用恒定画质模式:整段视频的画质保持一致,文件大小随内容而定。
- 用 Open Source(打开源)打开视频,选一个接近目标分辨率的预设。
- 在 Video(视频)选项卡里选择 Video Encoder(视频编码器):H.264 (x264)、H.265 (x265) 或 AV1 (SVT-AV1)。
- Framerate(帧率)保持 Same as source(与源相同)。
- 设置 Constant Quality(恒定画质)。HandBrake 文档推荐从下面这些范围起步(RF 越低,画质越高,文件也越大):
| 分辨率 | x264 和 x265 编码器 | SVT-AV1 编码器 |
|---|---|---|
| 标清(480p / 576p) | RF 18 到 22 | RF 22 到 32 |
| 高清(720p) | RF 19 到 23 | RF 25 到 35 |
| 全高清(1080p) | RF 20 到 24 | RF 25 到 35 |
| 超高清(2160p,即 4K) | RF 22 到 28 | RF 25 到 40 |
- 用 HandBrake 的 Preview(预览)编码一小段,和源文件对比。
- 点击 Start Encode(开始编码)。
HandBrake 文档还指出,RF 数值在不同编码器之间没有可比性:x264 用 RF 25 编出来的效果,和 x265 或 SVT-AV1 用 RF 25 编出来的不一样。
方法 3:用 FFmpeg 压缩(CRF)
FFmpeg 在命令行里提供同样的编码器,适合批量处理和写脚本。
H.264(取 HandBrake 1080p 推荐范围内的值):
ffmpeg -i input.mp4 -c:v libx264 -crf 22 -preset slow -c:a aac -b:a 160k output_h264.mp4H.265(x265 的默认 CRF 是 28,取值范围 0 到 51):
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -tag:v hvc1 -c:a aac -b:a 160k output_h265.mp4用 SVT-AV1 编码 AV1(SVT-AV1 自身的默认值是 CRF 35、预设 8,预设数字越大编码越快):
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 8 -c:a aac -b:a 160k output_av1.mp4怎么调:
- 降低 CRF,画质更高、文件更大;提高 CRF,文件更小。每次只调几档。
- 越慢的预设 会花越多时间寻找更高效的编码方式,同样的 CRF 下通常能得到更小的文件。
-tag:v hvc1会按苹果播放器期望的方式标记 H.265 视频流,有助于 MP4 文件在 QuickTime 和 iPhone 上打开。
如果只是要换个容器,就不用编码器。-c copy 会把音视频流原样搬进新文件,既不解码也不编码:
ffmpeg -i input.mp4 -c copy output.mov因为没有任何解码和编码,画面不会有变化。FFmpeg 文档提到,流复制并不是在所有情况下都可行,比如目标容器需要的信息源文件里没有。如果复制失败,就用上面的某条命令重新编码。
怎样压到指定的文件大小
如果平台或邮件对大小有上限,就从这个上限倒推:
- 把目标大小换算成兆比特:MB 数 × 8。100 MB 就是 800 Mb。
- 除以时长(秒)。5 分钟的视频:800 ÷ 300 ≈ 2.67 Mbps(总码率)。
- 减去音频码率。音频用 128 kbps 时,视频大约剩 2.54 Mbps。
- 给容器和码率波动留出约 5% 的余量:大约 2.4 Mbps。
在 KwaFlux 转换器里,选不高于这个数的最接近的码率;如果列表里没有这么低的值,就降一档分辨率。在 FFmpeg 里,用两遍编码来准确控制大小:
ffmpeg -y -i input.mp4 -c:v libx264 -b:v 2400k -preset slow -pass 1 -an -f null NUL
ffmpeg -i input.mp4 -c:v libx264 -b:v 2400k -preset slow -pass 2 -c:a aac -b:a 128k output_100mb.mp4在 macOS 或 Linux 上,把 NUL 换成 /dev/null。
怎样检查有没有看得出的画质损失
别只看压缩后文件的前几秒。要检查编码器容易吃力的镜头:
- 暗部渐变和天空:看有没有色带和阶梯状的色块。
- 细密纹理:树叶、水面、头发、布料。看有没有糊成一片。
- 快速运动和胶片颗粒:看有没有忽隐忽现的方块。
- 文字和边缘:看字母周围有没有振铃或毛边。
在 100% 缩放下对比原始文件和压缩后的文件,再在观众实际使用的设备上看一遍。想要客观的分数,见我们如何用 VMAF 给视频画质打分。
上传到平台时要记得,平台会把你的文件重新编码一遍。按 YouTube 推荐的 H.264 上传码率来(比如 1080p、24 到 30 fps 用 8 Mbps),平台就有干净的素材可用。上传一个又小又压得很狠的文件,等于让平台去压缩一张已经被压缩过的画面。
常见错误
| 错误 | 后果 | 解决办法 |
|---|---|---|
| 把已经压缩过的文件再压一遍 | 损失叠加,方块和涂抹越来越多 | 回到原始文件 |
| 给无法解码的设备选了 H.265 或 AV1 | 文件放不了,或者播放卡顿 | 不确定设备时用 H.264;先测试播放 |
| 把一个编码器的 CRF 值照搬到另一个编码器 | 文件大小或画质出乎意料 | 用每个编码器自己的推荐范围 |
| 导出分辨率高于源文件 | 文件更大,细节却没有增加 | 保持源分辨率,或者有意识地用 AI 放大 |
| 4K 视频的码率太低 | 运动和暗场出现方块 | 提高码率,或者改为交付 1080p(见 4K 与 8K 对比) |
| 不小心改了帧率 | 画面抖动,或者音画逐渐不同步 | 帧率保持和源文件一致 |
结语
压缩得好,靠的主要是一连串小决定:从原始文件开始,选观众能播放的编码,每次只调一个参数,检查难处理的镜头。做过一次,你就有了一套能用在同类文件上的固定做法。
KwaFlux 的转换器在你自己的电脑上批量转换视频和音频的格式、编码和码率,和你用来修复、增强画质的是同一个软件。媒体文件不会为了处理而上传。可在 Windows 10(64 位,1809 或更新版本)、Windows 11,以及搭载 Apple Silicon 的 macOS 12 或更新版本上运行。导入文件和试用软件都不需要账号。仅在导出、转换、文件修复和从链接下载文件时需要登录并购买付费方案。
用你自己的真实素材实测效果
下载 KwaFlux,付费前先在自己的素材上免费预览效果——无需注册,在你的 GPU 上处理,媒体文件不上传。 视频预览可选 1、3或5 秒;防抖预览可选 5、15或30 秒。
常见问题
怎样压缩视频又不损失画质?
有损编码每编码一次都会丢掉一些数据。你能控制的是别人看不看得出来:从原始文件开始,选一种设备支持的现代编码,逐档降低画质参数,直到出现差别,再退回上一档。
H.265 比 H.264 好吗?
不是在所有情况下都好。H.265 的设计目标是用更低的码率达到相近的观感,所以文件更小,但它编码更慢,有些浏览器和旧设备也播放不了。不确定文件会在哪儿播放时,H.264 更稳妥。
AV1 比 H.265 好吗?
不一定。AV1 是为高效的网页分发设计的,但用慢速预设时编码会慢得多,旧设备也可能没有硬件解码。请在观众实际使用的播放器上测试。
H.265 或 AV1 的码率怎么选?
从工具默认的画质参数起步,而不是套用某个固定数值:这两种编码的设计目标都是用比 H.264 更低的码率达到相近的观感。一边逐档降低,一边检查暗场和快速运动的镜头;VMAF 分数可以佐证你的肉眼判断。
把 MP4 改成 MKV 或 MOV,文件会变小吗?
不会。只换容器、不重新编码,复制的是同一条视频流,所以大小基本不变;FFmpeg 用 -c copy 就能做到。只有用别的编码或码率重新编码,大小才会变。
参考资料
- HandBrake Documentation, "Adjusting quality" (2026-10-11 查阅)
- x265 Documentation, "Command Line Options" (`--crf`) (2026-10-11 查阅)
- SVT-AV1, "Parameters" (CRF and preset defaults) (2026-10-11 查阅)
- YouTube Help, "YouTube recommended upload encoding settings" (2026-10-11 查阅)
- FFmpeg Documentation, "ffmpeg" (section 3.1, Streamcopy) (2026-10-11 查阅)

