StreamParser
打开工具
H.264 / AVC

H.264 是什么?

H.264,也称 AVC(Advanced Video Coding),是应用最广的视频压缩编码标准之一。它常见于 MP4 文件、直播推流、视频会议、监控录像和网页视频。理解 H.264 码流结构,可以帮助开发者定位花屏、无法解码、帧类型异常、分辨率识别错误等问题。

H.264 如何压缩视频

H.264 不是一个文件格式,而是一套视频编码标准。它通过帧内预测、帧间预测、整数变换、量化、环路滤波和熵编码,把原始图像序列压缩成更小的码流。容器格式如 MP4 或 MKV 负责封装音视频轨道,而 H.264 码流本身只描述视频图像如何被编码。

Annex B 裸码流是什么

Annex B 是 H.264 常见的裸码流格式,使用 0x0000010x00000001 起始码分隔 NAL 单元。很多摄像头、编码器、传输协议和调试样本都会输出 Annex B。这个站点的解析器直接读取 Annex B 裸流,而不是 MP4/MKV 容器。

NAL 单元

NAL(Network Abstraction Layer)单元是 H.264 码流的基本封装单位。常见 NAL 类型包括 SPS、PPS、SEI、IDR slice、non-IDR slice、AUD、EOS、EOB 和 filler data。解析 NAL 列表可以快速判断一个文件是否有参数集、是否包含关键帧,以及每个 NAL 在文件中的偏移和长度。

SPS 与 PPS

SPS(Sequence Parameter Set)保存序列级参数,例如 profile、level、编码宽高、裁剪信息、色度格式、VUI 和 HRD。PPS(Picture Parameter Set)保存图像级编码配置,例如熵编码模式、参考索引、量化参数偏移和去块滤波控制。缺少 SPS/PPS 是播放器或解码器无法初始化的常见原因。

I/P/B/IDR 帧

H.264 的 slice header 中包含 slice_type。I 帧主要使用帧内预测,P 帧引用过去图像,B 帧可双向引用。IDR 帧是一类特殊关键帧,通常用于随机访问点,解码器遇到 IDR 后可以丢弃之前的参考关系。码流排查时,需要把普通 I 帧和 IDR 帧分开看。

在本工具中上传 .h264 或 Annex B .bin 文件后,可以在 NAL 单元列表查看类型、偏移、长度、Frame、起始码和 Ref IDC,并在 Selected NAL 中点击字段查看二进制高亮。

下一步

如果你的输入来自 MP4,需要先用 FFmpeg 提取裸流;如果你要比较新旧编码标准,可以继续阅读 H.265 指南和 H.264 vs H.265 对比。