返回

H.264 格式 AnnexB 与 AVCC 深入剖析

后端

H.264 编码框架

H.264编码框架分为两层:

  • VCL(Video Coding Layer,视频编码层) ,负责高效的视频内容表示,它将原始视频数据编码成NAL单元(Network Abstraction Layer Unit);
  • NALU(Network Abstraction Layer Unit,网络抽象层单元) ,负责将VCL编码的数据封装成适合在网络上传输的格式。

AnnexB 格式

AnnexB格式是H.264码流文件最简单的封装格式,它直接将NAL单元放在文件开头,而不添加任何其他信息。AnnexB格式通常用于在本地存储和播放H.264视频文件。

AnnexB 格式优点:

  • 简单易懂,便于解析;
  • 占用空间小,节省存储空间;

AnnexB 格式缺点:

  • 不支持流媒体传输,无法在网络上实时传输视频数据;
  • 不支持错误检测和纠正,一旦传输过程中出现错误,可能会导致视频播放失败。

AVCC 格式

AVCC格式是H.264码流文件的一种高级封装格式,它在AnnexB格式的基础上添加了额外的信息,包括SPS(Sequence Parameter Set)、PPS(Picture Parameter Set)和SEI(Supplemental Enhancement Information)等。AVCC格式通常用于流媒体传输,因为它支持错误检测和纠正,能够在网络上实时传输视频数据。

AVCC 格式优点:

  • 支持流媒体传输,可以在网络上实时传输视频数据;
  • 支持错误检测和纠正,能够保证视频播放的质量;
  • 能够携带SPS、PPS和SEI等信息,便于解码器对视频数据进行解码。

AVCC 格式缺点:

  • 比AnnexB格式复杂,解析难度较大;
  • 占用空间更大,需要更多的存储空间。

AnnexB 格式和 AVCC 格式的比较

特性 AnnexB AVCC
格式结构 直接将NAL单元放在文件开头 在AnnexB格式的基础上添加了额外的信息
适用场景 本地存储和播放H.264视频文件 流媒体传输
优点 简单易懂,便于解析;占用空间小,节省存储空间 支持流媒体传输,可以在网络上实时传输视频数据;支持错误检测和纠正,能够保证视频播放的质量;能够携带SPS、PPS和SEI等信息,便于解码器对视频数据进行解码
缺点 不支持流媒体传输,无法在网络上实时传输视频数据;不支持错误检测和纠正,一旦传输过程中出现错误,可能会导致视频播放失败 比AnnexB格式复杂,解析难度较大;占用空间更大,需要更多的存储空间

结语

AnnexB格式和AVCC格式都是H.264码流文件的常见封装格式,它们各有优缺点,适用于不同的场景。AnnexB格式简单易懂,便于解析,占用空间小,但它不支持流媒体传输,无法在网络上实时传输视频数据。AVCC格式支持流媒体传输,能够保证视频播放的质量,但它比AnnexB格式复杂,解析难度较大,占用空间更大。

在实际应用中,通常会根据不同的场景选择合适的封装格式。例如,在本地存储和播放H.264视频文件时,可以使用AnnexB格式;在流媒体传输时,可以使用AVCC格式。