H264码流

分层
NAL 层(网络抽象层)用于网络传输的层

纠错、乱序、知道包的起始和结束

VCL层(视屏数据编码层)

视屏帧序列

一般一个图像一个slice, 但也可以一张图像可以分很多slice,方便传输。涉及到很多编码的东西。

一个视频有很多帧组成,帧是压缩后的图像。每个帧是由一个或多个slice组成,每个slice有多个宏块组成。

码流的基本概念
SODB 原始数据流,长度不一定是8的整数倍
RBSP 字节对齐流,SODB 字节流不对齐(8的整数倍)补1或补多个0
NALU 
NAL Header(1B)+RBSP

 

 

 Annexb 格式: 保存为文件格式,可以播放,startcode 每个NAL单元标志
RTP 格式:网络传输

总结:

1:一个NAL单元最多就一个slice(片),因为还有其他类型的NAL,
比如nal_unit_type字段的值为7时是表示sps序列参数集,
值为8时是表示PPS 图形参数集。

2、
H264的编码方式有两种:帧编码(Frame)和场编码(Interlace)
其中,帧编码一般一个NAL单元就一个图像Slice,场编码则由顶场和底场构成,
每个NAL单元可能包含多个图像SLICE片,也有可能就一个,但只有同一个Frame_Num的顶场和底场,
才能构成一幅完整图像。
因此,一帧不一定就是一个NAL单元,一帧可能有多个NAL单元组成。
一帧里面可能有多个NAL单元(也就是slice)。


3、NAL单元的头信息中的nal_unit_type字段我们能知道当前类型是sps,pps和IDR类型。

4、slice 片的头部信息可以判断帧类型

5、判断IDR、I、P、B的类型,就是通过SLICE_HEADER的信息来看,看它的SLICE_TYPE是哪种

6、对于H.264来说1个AVPacket的data通常对应一个NAL。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值