RFC-6184 H264-RTP打包

详细的RFC见RFC-618

简介

RTP是流协议,所以传输的H264一定是Nal类型的H264数据,Nal的头中有三个字段,分辨是forbidden_zero, nal_ref, nal_unit_type,内涵不再详细说明。
RTP头格式中与H264相关的字段如下:

  • M (Mark), 表示当前包是H264 Nal的最后一个包。
  • PT(Payload Type),对于H264该字段应该是通过SDP或则其他信令映射的标示。
  • Sequence Number, 序列号,单调递增。
  • Timestamp 时间戳,Nalu第一个8bit的采样时间,频率是90Hz。

1. 概览

1.1 打包方式

RFC-6184根据RTP包大小和NAL类型定义了如下数据封装格式

对于H264的数据,RTP打包的时候是如何打包这些数据的呢?

  • Signal Nal Unit, 仅包含一个NAL。
  • Aggregation Unit, 聚合多个NAL,包括 STAP-A,STAP-B,MTAP16,MTAP24。
  • Fragmentation Unit, 如果一个NAL太大,可以将其分片分别进行打包,会使用该中类型。
NAL Unit TypePacket TypePacket Type NameSection
0reserved-
1-23NAL unitSingle NAL unit packet5.6
24STAP-ASingle-time aggregation packet5.7.1
25STAP-BSingle-time aggregation packet5.7.1
26MTAP16Multi-time aggregation packet5.7.2
27MTAP24Multi-time aggregation packet5.7.2
28FU-AFragmentation unit5.8
29FU-BFragmentation unit5.8
30-31reserved-

1.2 打包模式

根据不同的应用场景,定义了三种不同的组包模式,分别如下

  • 单NALU模式:使用单个NALU包进行封RTP包的方式,实现此协议的所有应用都需要支持此模式。
  • 非交织模式:NAL发送顺序和其生成顺序一致,实现此协议的应用建议支持此模式。
  • 交织模式:NAL发送顺序和其生成顺序不一致,此模式是可选的。

几种模式与负载的关系
在这里插入图片描述

2 DON

DON即Decoding Order Number,在非交织传输NAL的发送顺序和生成顺序不同,这就意味着接收端收到NAL的顺序与生成顺序也不同,为了能够正常的解码,需要重新对NAL进行排序。因此引入DON的概念,标识解码顺序。

3 包格式

3.1 Signal Nal Unit 包格式

在这里插入图片描述

3.2 Aggregation Unit 打包方式

在这里插入图片描述
聚合报文是本负载规范的NAL单元聚合方案。引入该方案是为了反映两个关键目标网络中MTU大小的显著差异:有线IP网络(MTU大小通常受以太网MTU大小的限制,大约1500字节)和基于IP或非基于IP(例如,ITU-T H.324/M)的无线通信系统,首选传输单元大小为254字节或更小。为了防止媒体在两个世界之间进行转码,避免不必要的分组开销,提出了一种NAL单元聚合方案。

规范中定义了两种聚合类的报文方式:

  • STAP(Single-Time Aggregation Packet)对NALU时间相同的NAL单元进行聚合,具体如下
    • STAP-A 不带DON
    • STAP-B 带DON
  • MTAP(Multi-time aggregation packet)对NALU时间可能不同的NAL单元进行聚合,具体如下

注意, 无论是STAP还是MTAP打包时都应该遵守如下规则:

  1. RTP时间戳必须设置为所有要聚合的NAL单元的nalu时间中最早的一个。
  2. NAL单元的头中 Type 必须设置正确,根据上面的表格,如STAP-A 对应24。
  3. 如果复合的NAL都是可以正确解码的帧,则F为必须设置为0,否则设置为1。
  4. 如果复合的NAL头的NRI需要取所有NAL单元的最大值。

STAP-A

在这里插入图片描述

STAP-B

在这里插入图片描述

1. 介绍 ........................................ 3 1.1. H.264 Codec ............................... 3 1.2. 参数集概念 ........................... 4 1.3. 网络抽象层单元类型............................ 5 2. 约定 ......................................... 6 3. 范围 ............................................... 6 4. 定义和缩写 ................................. 6 4.1. 定义 ..................................... 6 5. RTP 荷载格式 ..................................... 8 5.1. RTP 头的使用.................................. 8 5.2. RTP荷载格式的公共使用 .............. 11 5.3. NAL单言字节的用法 ............................ 12 5.4. 打包方式 .................................... 14 5.5. 解码顺序号 (DON)............................. 15 5.6. 单个NAL单元包................................. 18 5.7. 复合包 ................................. 18 5.8. 分片单元 (FUs) ............................... 27 6. 分包规则 ................................... 31 6.1. 公共分包规则 .............................. 31 6.2. 单个NAL单元方式............................... 32 6.3. 非交错方式 ............................... 32 6.4. 交错方式 ............................... 33 7. 打包过程 (信息) ........................ 33 7.1. 单NAL单元和非交错方式 ................ 33 7.2. 交错方式 ............................... 34 7.3. 附加的打包原则 .................. 36 8. 荷载格式参数 ................................... 37 8.1. MIME 注册 .................................... 37 8.2. SDP 参数...................................... 52 8.3. 例子.......................................... 58 8.4. 参数集考虑 ............................ 60 9. 安全考虑 ....................................... 62 10. 拥塞控制............................................ 63 11. IANA考虑 ........................................... 64 12. 信息化附录: 应用例子 .................... 65 12.1. 根据ITU-T H.241 附录A的视频电话............... 65 12.2. 没有分片数据分区,没有NAL单元聚合的视频电话... 65 12.3. 使用NAL单元聚合交错打包的视频电话............. 66 12.4. 使用数据分区的视频电话 .................. 66 12.5. 使用FU和向前纠错的视频电话和流................ 67 12.6. 低位率流 .................................. 69 12.7. 视频流中健壮的包调度 ............. 70 13. 信息化附录:解码顺序号的原理 ..... 71 13.1. 介绍.......................................... 71 13.2. 多图像片断交错的例子 ............. 71 13.3. 健壮包调度的例子 .................... 73 13.4. 冗余编码片断健壮传输调度的例子................ 77 13.5. 其它设计可能的提醒 ................... 77 14. 致谢 .............................................. 78 15. 参考 ............................................... 78 15.1. 标准化参考.................................... 78 15.2. 参考性的参考.................................. 79 作者地址................................................ 81 完全版权声明 .......................................... 83
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值