美文网首页
h264协议帧头数据解析

h264协议帧头数据解析

作者: 星_025f | 来源:发表于2020-07-02 17:23 被阅读0次

原文出自http://blog.csdn.net/season_hangzhou/article/details/51123979

可以使用Binary Viewer工具查看hexadecimal(十六进制)数据
一、序言

h264常见的帧头数据为:

00 00 00 01 67    (SPS):SPS即Sequence Paramater Set,又称作序列参数集。SPS中保存了一组编码视频序列(Coded video sequence)的全局参数。所谓的编码视频序列即原始视频的一帧一帧的像素数据经过编码之后的结构组成的序列。而每一帧的编码后数据所依赖的参数保存于图像参数集中。一般情况SPS和PPS的NAL Unit通常位于整个码流的起始位置。但在某些特殊情况下,在码流中间也可能出现这两种结构,主要原因可能为:

1:解码器需要在码流中间开始解码;

2:编码器在编码的过程中改变了码流的参数(如图像分辨率等);

00 00 00 01 68    (PPS):除了序列参数集SPS之外,H.264中另一重要的参数集合为图像参数集Picture Paramater Set(PPS)。通常情况下,PPS类似于SPS,在H.264的裸码流中单独保存在一个NAL Unit中,只是PPS NAL Unit的nal_unit_type值为8;而在封装格式中,PPS通常与SPS一起,保存在视频文件的文件头中。

00 00 00 01 65    ( IDR 帧) : I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)

00 00 00 01 61    (P帧) :P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)

二、start code

start code有两种,四个字节的“00 00 00 01”和三个字节的“00 00 01”都是。

三:帧格式

H264帧由NALU头和NALU主体组成。

NALU头由一个字节组成,它的语法如下:

+---------------+

|0|1|2|3|4|5|6|7|

+-+-+-+-+-+-+-+-+

|F|NRI|  Type   |

+---------------+

F: 1个比特.

forbidden_zero_bit. 在 H.264 规范中规定了这一位必须为 0.

NRI: 2个比特.

nal_ref_idc. 取00~11,似乎指示这个NALU的重要性,如00的NALU解码器可以丢弃它而不影响图像的回放,0~3,取值越大,表示当前NAL越重要,需要优先受到保护。如果当前NAL是属于参考帧的片,或是序列参数集,或是图像参数集这些重要的单位时,本句法元素必需大于0。

Type: 5个比特.

nal_unit_type. 这个NALU单元的类型,1~12由H.264使用,24~31由H.264以外的应用使用,简述如下:

0     没有定义

1-23  NAL单元  单个 NAL 单元包

1     不分区,非IDR图像的片

2     片分区A

3     片分区B

4     片分区C

5     IDR图像中的片

6     补充增强信息单元(SEI)

7     SPS

8     PPS

9     序列结束

10    序列结束

11    码流借宿

12    填充

13-23 保留

24    STAP-A   单一时间的组合包

25    STAP-B   单一时间的组合包

26    MTAP16   多个时间的组合包

27    MTAP24   多个时间的组合包

28    FU-A     分片的单元

29    FU-B     分片的单元

30-31 没有定义

相关文章

  • h264协议帧头数据解析

    原文出自http://blog.csdn.net/season_hangzhou/article/details/...

  • ios音视频--H264结构与码流

    H264结构 我们通过H264压缩技术得到了一帧帧的H264视频帧, 每一个视频帧实际上是一个结构化的东西, 我们...

  • 网络

    网络协议 由于以太网最大的数据帧是1518Bytes,刨去以太网帧的帧头(DMAC目的MAC地址48bits=6B...

  • iOS中的H264硬解码 - 音视频总结

    H264压缩技术 帧内预测压缩 解决的是空域数据冗余问题. 帧间预测压缩 解决的是时域数据冗余问题 整数离散余弦变...

  • 计算机网络一刷3-数据链路层

    使用点对点信道的数据链路层 帧点对点信道的数据链路层的协议数据单元;数据链路层传送的协议数据单元; 封装成帧 fr...

  • H264 SPS和PPS 发送计算 图解

    开篇两张图,剩下全靠编 H264数据包结构 H264在发送数据包的时候要区分SPS,PPS和和I/B/P帧,先于I...

  • 18. arp欺骗

    1.arp协议arp协议是地址解析协议,“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。在...

  • H264帧格式解析

    https://blog.csdn.net/zhaoyun_zzz/article/details/87302600

  • iOS RTMP 视频直播开发笔记(3)- 了解 H.264 编

    本节内容整理自:H264–1–编码原理以及I帧B帧P帧,作者:dxpqxb H264是一种高压缩率的编码标准,如何...

  • Android 音视频01 --- H264的基本原理01

    一. H264概述 H264压缩技术主要采用了以下几种方法对视频数据进行压缩。包括: 1.帧内预测压缩 解决的是空...

网友评论

      本文标题:h264协议帧头数据解析

      本文链接:https://www.haomeiwen.com/subject/vtwrqktx.html