| 维度 | H.264 / AVC | H.265 / HEVC |
|---|---|---|
| 定位 | 高清和通用视频编码标准,兼容性强。 | 面向更高压缩效率,常用于 4K/8K/HDR。 |
| 参数集 | SPS、PPS。 | VPS、SPS、PPS。 |
| NAL header | 包含 forbidden_zero_bit、nal_ref_idc、nal_unit_type。 | 包含 forbidden_zero_bit、nal_unit_type、nuh_layer_id、nuh_temporal_id_plus1。 |
| 帧类型判断 | 主要结合 VCL NAL 类型和 slice_type。 | 需要结合 HEVC VCL NAL 类型、IRAP 类型和 slice_type。 |
| 兼容性 | 浏览器、播放器、硬件解码支持更普遍。 | 新设备支持较好,旧设备或浏览器可能受限。 |
压缩效率不是唯一指标
H.265 通常可以在相近画质下降低码率,但这取决于编码器、preset、码率控制、内容复杂度和播放设备。对实时场景来说,编码延迟、硬件编码支持和解码功耗同样重要。
为什么解析时不能混用规则
H.264 和 H.265 的 NAL header 位宽不同,参数集结构不同,slice header 条件分支也不同。如果用 H.264 的逻辑读 H.265,字段值会整体错位;反过来也一样。解析器必须先检测编码格式,再按对应协议读取字段。
选择建议
- 需要最大兼容性、网页播放或旧设备支持时,优先考虑 H.264。
- 需要更低码率、4K/8K 或存储成本敏感时,可以考虑 H.265。
- 做码流排查时,先确认文件是 H.264 还是 H.265 Annex B 裸流,再看参数集和帧类型。