4. 编码器选择:H.264、H.265/HEVC、AV1 的对比
聊到编码器选择,很多刚入行的朋友会直接问我:「到底该用哪个编码器?」
说实话,这个问题没有标准答案。不同的场景、不同的设备、不同的预算,答案都不一样。我做了这么多年流媒体,踩过的坑不少,今天就把我的经验摊开来聊聊。
4.1 三大编码器的核心差异
先看一张对比表,心里有个底:
| 特性 | H.264 (AVC) | H.265 (HEVC) | AV1 |
|---|---|---|---|
| 推出时间 | 2003 | 2013 | 2018 |
| 压缩效率 | 基准 | 比 H.264 省 30-50% 码率 | 比 H.265 再省 20-30% |
| 编码复杂度 | 低 | 中高 | 极高(软件编码慢 5-10 倍) |
| 硬件编码支持 | 几乎所有设备 | iPhone、新 GPU、电视 | 仅最新 GPU/手机 SoC |
| 解码兼容性 | 99% 设备 | 约 70-80% 设备 | 约 30-40% 设备 |
| 专利许可 | 有专利费 | 有专利费(更复杂) | 开源免费 |
核心结论:没有「最好」的编码器,只有「最适合当前场景」的编码器。H.264 是保底方案,H.265 是当前主流,AV1 是未来方向。
4.2 H.264:老将出马,一个顶俩
H.264 是我用得最多的编码器,没有之一。为什么?因为它太稳了。
我记得 2016 年做一个直播平台,用户遍布全球,从非洲的 2G 网络到日本的 5G 都有。那时候我试过 H.265,结果非洲用户直接黑屏——解码器不支持。最后全线切回 H.264,问题解决。
H.264 的优势:
- 兼容性无敌:从 2005 年的诺基亚到最新的 iPhone,全支持硬件解码。
- 编码速度快:软件编码用 x264,参数调好了,普通服务器也能跑 1080p 实时。
- 生态成熟:所有播放器、CDN、转码服务都支持,几乎没有坑。
但它的短板也很明显:
- 同等画质下,码率比 H.265 高 30-50%。带宽成本高。
- 4K/8K 场景下,码率飙升,H.264 有点扛不住。
我的建议:如果你的用户群体覆盖老旧设备,或者你不想处理兼容性问题,直接用 H.264。别折腾。
4.3 H.265/HEVC:当前的主流选择
H.265 是 H.264 的继任者。压缩效率提升明显,但代价是编码复杂度翻倍。
我曾经在一个 4K 直播项目里做过对比:同样 1080p 视频,H.264 需要 4Mbps 才能达到「优秀」画质,H.265 只要 2.5Mbps。省下来的带宽,一年能省几十万。
H.265 的适用场景:
- 4K/8K 直播:码率敏感场景,H.265 是首选。
- 移动端为主:iPhone 从 6s 开始支持硬件解码,Android 旗舰机也基本支持。
- 带宽成本敏感:CDN 流量费高,用 H.265 能省不少钱。
注意:H.265 的专利问题很复杂。多个专利池收费,商业使用要小心。我见过小公司被专利公司找上门,赔了不少钱。
编码参数建议:
# x265 常用参数(软件编码)
x265 --preset medium --crf 23 --profile main10 --output out.hevc input.y4m
# 硬件编码(NVENC)
ffmpeg -i input.mp4 -c:v hevc_nvenc -preset p7 -rc vbr -b:v 4M -maxrate 6M output.mp4
4.4 AV1:未来的王者,现在的挑战
AV1 是 AOM(开放媒体联盟)推出的开源编码器。压缩效率比 H.265 再高 20-30%,而且完全免费。
但说实话,AV1 现在最大的问题是——太慢了。
我去年测试过 AV1 软件编码,用 libaom 编码一段 10 分钟的 1080p 视频,H.264 只要 2 分钟,H.265 要 5 分钟,AV1 用了 40 分钟。你说这怎么用于直播?
AV1 的现状:
- 硬件编码刚起步:NVIDIA RTX 40 系列、Intel Arc、Apple M3 开始支持硬件编码。
- 解码支持在增长:Chrome、Firefox、Edge 都支持,但老旧设备不行。
- 适合点播场景:VOD(视频点播)可以先编码好,不要求实时。
我的判断:AV1 会在 3-5 年内成为主流。但现在做直播,除非你的用户全是高端设备,否则别碰 AV1 实时编码。
4.5 编码器选择决策树
下面这张图是我自己总结的决策逻辑,每次做项目都会拿出来参考:
4.6 混合编码策略:最实用的方案
在实际项目中,我很少只用一种编码器。最常用的策略是「多编码器同时输出」。
举个例子:
- 主路:H.264 1080p 4Mbps — 给老旧设备和低端手机
- 辅路:H.265 1080p 2.5Mbps — 给主流移动设备
- 备路:AV1 1080p 1.8Mbps — 给高端设备(如果支持)
客户端根据自身解码能力,自动选择最合适的流。这样既保证了兼容性,又节省了带宽。
避坑指南:我曾经在一个项目里只用了 H.265,结果上线后发现大量用户黑屏。后来紧急加了 H.264 备路,才解决问题。记住:永远给用户留一条退路。
4.7 编码器选择的未来趋势
说说我的判断:
- 短期(1-2 年):H.264 仍是主流,H.265 在 4K 场景普及。
- 中期(3-5 年):AV1 硬件编码成熟,逐步替代 H.265。
- 长期(5 年+):VVC(H.266)和 AV2 会登场,但那是后话了。
嗯,编码器选择这个话题,说到底就是「平衡的艺术」。平衡画质、码率、兼容性、成本。没有银弹,只有最适合你当前场景的方案。