zoukankan      html  css  js  c++  java
  • h264 RTP STAP-A单时间聚合包

    参考官方文档:http://www.rosoo.net/Files/UpFiles/RsProduct/avtools/2009-4/2009491562537854.txt

    聚合包的RTP荷载格式的结构见图3

     即开头1个字节表示NAL单元类型,接着1个或多个聚合单元,后面是可选的RTP填充。

    单时间聚合包STAP

    单时刻聚合包(STAP)应该用于当聚合在一起的NAL单元共享相同的NALU时刻。STAP-A荷载不包括DON,至少包含一个单时刻聚合单元见图4

    STAP-B荷载包含一个16位的无符号解码顺序号(DON) (网络字节序)紧跟至少一个单时刻聚合单元。见图5.

    图 7表示一个例子--一个RTP包包含一个STAP-A. STAP包含两个单时刻聚合单元, 在图中用1,2标记。

    开始是4个字节的RTP头,接着1字节NAL单元类型,应该是24,然后2字节表示第1个NALU长度,接着1字节表示第1个NALU类型,然后若干个字节的NALU负载数据,以此类推。

    注意:NALU Size = NALU HDR + NALU DATA,是头字节长度加负载数据长度。

    一个STAP-A RTP包示例,其中包含了sps pps

     如图,第1个字节18表示十进制24,即这个包是STAP-A类型

    00 02 表示第1个NALU长度为2,即 09 10两个字节,09表示第一个NALU HDR,类型取后5位为0x08表示类型

    然后从第5、6个字节 00 18表示第2个NALU的长度,换算为24, 头字节67取后5位为96表示类型,也就是sps

    从第7字节67开始24字节长度为第2个NALU数据,到80结束

    然后 00 04表示第3个NALU长度为4字节,头字节68取后五位为类型,也就是pps

    从第25字节68开始到结束4个字节就是第三个NALU数据

    图 8 表示一个RTP包包含一个STAP-B. STAP包含两个单时刻聚合单元, 用 1,2标记。

     STAP-B比STAP-A多了一个公共的DON,详见规范文档

    分片单元相对来说比聚合单元更简单一点

  • 相关阅读:
    Python里的目录方法
    PythonFile对象的属性
    Python read和write方法
    Python打开和关闭文件
    Python打印到屏幕_读取键盘输入
    Python包
    Python globals和locals函数_reload函数
    Python dir( )函数
    【C 语言】一元二次方程
    【C语言】已知三角形三边长,求三角形面积
  • 原文地址:https://www.cnblogs.com/jixiaohua/p/11899440.html
Copyright © 2011-2022 走看看