rtp包头解析

【版权申明】转载请附上出处链接

rtp包头解析

RTP固定报文字段:

RTP固定报文字段

字段占用bit数含义
version(V)2表示RTP 的版本号
padding(P)1如果设置了填充位,则包在端处包含一个或多个附加的填充八进制,它们不是有效负载的一部分。填充的最后一个八进制包含有多少填充八进制应该被忽略,包括它本身。一些具有固定块大小的加密算法或在较低层协议数据单元中承载多个rtp分组时,可能需要填充。
extension(X)如果设置了扩展位,则固定的头必须后面紧跟着一个标头扩展,其格式在第5.3.1节中定义。
CSRC count (CC)4指示CSRC 标识符的个数
marker (M)不同的有效载荷有不同的含义。对于视频,表示一帧的结束;对于音频,表示会话的开始
payload type (PT)用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像、H264等
sequence number16用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。
timestamp32时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。
synchronization source(SSRC)32同步信源标识符。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。
contributing sources(CSRC)32特约信源标识符。每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。
  • 在发送端,上层应用程序以分组形式将编码后的媒体数据传给RTP通信模块,作为RTP报文的有效载荷,RTP通信模块将根据上层应用提供的参数在有效载荷前添加RTP报头,形成RTP报文,通过Socket接口选择UDP协议发送出去。
  • 在接收端,RTP通信模块通过Socket接口接收到RTP报文后,将RTP报头分离出来作相应处理,再将RTP报文的有效载荷作为数据分组传递给上层应用。
前面的12个字节是固定存在于每个rtp中,而后面的CSRC只有当混频器存在时才会被插入
  • 同步信源是指产生媒体流的信源,它通过RTP报头中的一个32位数字SSRC标识符来标识,而不依赖于网络地址,接收者将根据SSRC标识符来区分不同的信源,进行RTP报文的分组。
  • 特约信源是指当混合器接收到一个或多个同步信源的RTP报文后,经过混合处理产生一个新的组合RTP报文,并把混合器作为组合RTP报文的SSRC,而将原来所有的SSRC都作为CSRC传送给接收者,使接收者知道组成组合报文的各个SSRC。
考虑到在Internet这种复杂的环境中举行视频会议,RTP定义了两种中间系统:混合器(Mixer)和转换器(Translator)

在Internet上举行视频会议时,可能有少数参加者通过低速链路与使用高速网络的多数参加者相连接。为了不强制所有会议参加者都使用低带宽和低质量的数据编码,RTP允许在低带宽区域附近使用混合器作为RTP级中继器。混合器从一个或多个信源接收RTP报文,对到达的数据报文进行重新同步和重新组合,这些重组的数据流被混合成一个数据流,将数据编码转化为在低带宽上可用的类型,并通过低速链路向低带宽区域转发。为了对多个输入信源进行统一的同步,混合器在多个媒体流之间进行定时调整,产生它自己的定时同步,因此所有从混合器输出的报文都把混合器作为同步信源。为了保证接收者能够正确识别混合器处理前的原始报文发送者,混合器在RTP报头中设置了CSRC标识符队列,以标识那些产生混合报文的原始同步信源。

在Internet环境中,一些会议的参加者可能被隔离在应用级防火墙的外面,这些参加者被禁止直接使用IP组播地址进行访问,虽然他们可能是通过高速链路连接的。在这些情况下,RTP允许使用转换器作为RTP级中继器。在防火墙两端分别安装一个转换器,防火墙之外的转换器过滤所有接收到的组播报文,并通过一条安全的连接传送给防火墙之内的转换器,内部转换器将这些组播报文再转发送给内部网络中的组播组成员。

参考博文:

RTP报文头部分析

在使用rtp协议传输h264码流时的一些笔记:

1. 关于时间戳:

在这里插入图片描述

  h264的时钟频率为90000hz,因此时间戳的单位为1(秒)/90000。因此当视频帧率为25fps,时间戳的间隔(或者说增量)应该为3600;如果帧率为30fps,则增量为3000。

2. 关于sps/pps的时间戳:

  传输sps/pps的时间戳与关键帧的时间戳是一样的。(好像不一样可是正常的)
也可以不发送sps/pps时间戳,而在sdp文件中给定视频参数。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

安河桥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值