H265 NALU类型简单介绍:
F:必须为0,表示有效;为1的话表示无效。
Type:6-bits NALType 确定NAL的类型,其中VCL NAL和non-VCL NAL各有32类。0-31是vcl nal单元;32-63,是非vcl nal单元。VCL是指携带编码数据的数据流,而non-VCL则是控制数据流。
LayerID:表示NAL所在的Access unit所属的层,该字段是为了HEVC的继续扩展设置。也就是目前都是0,以后的扩展可能会用到。
TID:3 bits
通常情况下,F为0,LayerID为0,TID为1。
下面我们来看一个RTP包的NALU Header的例子,如下图:
H265帧类型解析:
H264的帧类型解析为:int Type = code & 0x1f;
H265的帧类型解析为:int Type = (code & 0x7E)>>1;
00 00 00 01是NALU的起始码,后面紧跟一个字节NAL Type常见的有6种,分别如下:
控制数据流,主要由以下4种:
视频参数集VPS,NALU Type值为32,RTP中H265格式如下:
序列参数集SPS,NALU Type值为33,RTP中H265格式如下:
序列参数集PPS,NALU Type值为34,RTP中H265格式如下:
补充增强信息SEI,NALU Type值为39,RTP中H265格式如下:
编码数据的数据流,主要由以下2种:
00 00 00 01 62 01 93 的nuh_unit_type的值为 19, 语义为可能有RADL图像的IDR图像的SS编码数据 IDR,RTP中H265格式如下:
这里我们再讲一个问题,当发送的NALU长度小于MTU时,直接发送;当发送的NALU长度大于MTU时,需要分片,上面的这个为分片的起始包,FU Header中的Start bit值为1,注意Start bit和End bit不能同时为1;FU分片的中间包Start bit和End bit的值均为0;FU分片结束包中End bit为1。
00 00 00 01 02 01 的nuh_unit_type的值为1, 语义为被参考的后置图像,且非TSA、非STSA的SS编码数据,RTP中H265格式如下: