h264两种封装格式区别

annexb

  • 一个Access Units(AU)包含一个帧,一帧画面包含一个或多个NALU(Network Abstraction Layer Units)
  • 为了字节对齐,每个NALU有起始码,其中4字节的起始码0x00000001通常标志流的随机访问点SPS, PPS, AUD,IDR,其他nalu使用3字节的起始码
  • 起始码之后的第一个字节为NALU的头部,第7位(禁止位F)一定为0,第5.6位(重要性指示位NRI)标志是否被其他NALU引用,值越大,越重要,第0,1,2,3,4位(NALU类型Type),0:未定义,1-23:NAL单元,24:STAP-A 单一时间组合包,25:STAP-B 单一时间组合包,26:MTAP-16 多个时间组合包,27:MTAP-24 多个时间组合包,28:FU-A 分片,29:FU-B 分片,30-31:未定义,1-12由H.264使用,24-31由其他封包使用(比如rtp),其中0x67位SPS,0x68位PPS,0x65为IDR
  • 其他部分为NALU的payload,长度不定
  • *适用于实时流

avcc

  • 视频开始有extradata,包含SPS,PPS
  • 每个NALU前有存储NALU的长度,
  • 适用于视频文件存储

猜你喜欢

转载自blog.csdn.net/k3108001263/article/details/83719439
今日推荐