H264三种RTP打包方式

1. 单一NALU模式

单一NALU模式

适用于小于MTU(最大传输单元)的NALU。这种模式下,一个RTP包包含一个完整的NALU。RTP头部之后紧跟着NALU头和NALU数据。

封装格式

RTP头 | NALU头 | NALU数据

这种方式简单直接,但仅适用于较小的NALU。

2. 组合帧封装模式

组合帧封装模式适用于多个小NALU的组合传输。常用的类型是STAP-A(单时间聚合包)。这种模式下,一个RTP包可以包含多个NALU,适合传输多个小NALU以提高传输效率。

STAP-A封装格式

  • RTP头:包含标识、序列号、时间戳等信息。
  • STAP-A头:表示这是一个STAP-A包。
  • NALU头和数据:包含多个NALU,每个NALU都有自己的头和数据。
RTP头 | STAP-A头 | NALU1头 | NALU1数据 | NALU2头 | NALU2数据 | ...

这种方式在传输多个小NALU时非常高效。

3. 分片封装模式

分片封装模式适用于大于MTU的NALU。常用的类型是FU-A(分片单元A)。这种模式下,一个NALU被分片成多个RTP包传输。

封装格式

RTP头 | FU Indicator | FU Header | NALU分片数据
  • FU Indicator:包含NALU头的前三位(F、NRI)和类型字段(28表示FU-A)。
  • FU Header:包含分片的开始(S)、结束(E)和NALU类型字段。

  1. S(Start):表示这是一个NALU的起始片段。如果S=1,表示这是该NALU的第一个片段。
  2. E(End):表示这是一个NALU的结束片段。如果E=1,表示这是该NALU的最后一个片段。
  3. R(Reserved):保留位,固定为0。
  4. Type:表示NALU的类型,与NALU头中的类型字段相同。

假设我们有一个NALU需要分成四个片段传输,那么每个片段的FU Header如下:

  • 第一个片段:S=1, E=0, R=0, Type=NALU类型
  • 第二个片段:S=0, E=0, R=0, Type=NALU类型
  • 第三个片段:S=0, E=0, R=0, Type=NALU类型
  • 最后片段:S=0, E=1, R=0, Type=NALU类型

此时第二第三片段FU Header是完全一致的,它们的顺序可以通过RTP序列号、时间戳、接收顺序区分。

通过这种方式,接收端可以根据S和E字段来重组原始的NALU。这种方式确保了大NALU可以被分片并通过网络传输。

总结

  • 单一NALU模式:适用于小NALU,简单直接。
  • 组合帧封装模式:适用于多个小NALU的组合,提高传输效率。
  • 分片封装模式:适用于大NALU,通过分片传输。

RTP头(RTP Header)

RTP头是RTP数据包的一个组成部分,包含了多个字段,用于描述数据包的各种信息。RTP头的结构如下:

  • 版本号(V):2位,表示RTP协议的版本。
  • 填充标志(P):1位,如果P=1,则在报文尾部有填充字节。
  • 扩展标志(X):1位,如果X=1,则在RTP头后有扩展头。
  • CSRC计数器(CC):4位,表示CSRC标识符的个数。
  • 标记(M):1位,用于标记重要事件。
  • 有效载荷类型(PT):7位,表示RTP报文中有效载荷的类型。
  • 序列号(Sequence Number):16位,用于标识发送的RTP报文的序列号。
  • 时间戳(Timestamp):32位,表示数据包的采样时刻。
  • 同步源标识符(SSRC):32位,用于标识同步源。
  • 特约信源标识符(CSRC):每个CSRC占32位,可以有0-15个。

RTP序列号(RTP Sequence Number)

RTP序列号是RTP头中的一个字段,占16位。它用于标识发送的RTP报文的顺序,每发送一个报文,序列号会递增1。接收端可以通过序列号来检测报文丢失情况,并重新排序报文以恢复数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头发乌黑茂密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值