H264 NALU详解

H264 NALU

1、介绍

在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。
可以这样理解NALU,在编码后的数据,I/P/B,需要持续的传输出去,那马上能想到的至少有两个需求,一个是该数据的帧类型,比如是I还是P,另外一个问题,这些数据在网络中传输可能会粘包,若是存储成一个文件后,想从这个文件再从头提取可就难了,不知哪里开始哪里结束。NALU就是为了解决这种问题而生

2、流格式

H264 NALU详解_第1张图片
每个NALU由如下几部分:

  • NALU 分隔符
  • NALU Type
  • NALU Data

2.1 NALU分隔符

每个NALU之间都是以 00 00 00 01作为分隔的,对于连续的H264数据,当判断到这个分隔头后,可以得到的结论是,新的一帧开始

2.2 NALU type

在分隔符后边的那个字节为NALU type,1个字节,其中低五位有效

type = Nalu[4] & 0x1f
  • 0:未规定
  • 1:非IDR图像中不采用数据划分的片段
  • 2:非IDR图像中A类数据划分片段
  • 3:非IDR图像中B类数据划分片段
  • 4:非IDR图像中C类数据划分片段
  • 5:IDR图像的片段
  • 6:补充增强信息 (SEI)
  • 7:序列参数集/SPS
  • 8:图像参数集/PPS
  • 9:分割符
  • 10:序列结束符
  • 11:流结束符
  • 12:填充数据
  • 13 – 23:保留
  • 24 – 31:未规定

你可能感兴趣的:(编解码,音视频,FFMPEG,音频编码解码)