GB28181技术基础之3 - RTP
一. RTP协议
实时传输协议 RTP(Real-time Transport Protocol)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的,后在RFC3550中进行更新。
RTP通常是配合 RTCP协议使用,通过 RTCP 协议来控制流量和拥塞。
RTP 的包格式:
V
P
X
CC
M
PT
SN
时间戳
同步信源(SSRC)标识符
特约信源(CSRC)标识符
···
格式说明:
1. V:版本号,用来标志当前使用的RTP版本,2bit;
2. P:填充位,如果该位=1,对应RTP包的尾部则包含附加的填充字节,1bit;
3. X:扩展位,如果该位=1,对应RTP固定头部后面则跟一个扩展头部,1bit;
4. CC:CSRC计数器,对应固定头部后面跟着的 CSRC数目,4bit;
5. M:标记位,不同的有效载荷有不同的含义,如果是视频,标记一帧的结束;如果是音频,标记会话的开始;
由配置文档 Profile来解释,1bit;
6. PT:载荷类型,标识了RTP载荷的类型(比如 音频、图像等),7bit;
7. SN:序列号,对于发送方 - 每发送完一个RTP包+1,对于接收方 - 用来检测报文丢失情况,重新排序报文,恢复数据,16比特;
8. 时间戳:标记该RTP报文的第一个八位组的采样时刻,接收者通过时间戳来计算延迟和延迟抖动,并进行同步控制;
9. SSRC:同步信源标识符,即 RTP包的来源。在同一个RTP会话中不能有两个相同的SSRC值。该标识符是随机选取的,32比特;
10. CSRC:特约信源标识符,用来标识了包含在该RTP报文有效载荷中的所有特约信源。
CSRC 可以有0~15项,每项32比特;
二. RTP协议的用途
RTP协议主要用于在互联网上传输,用于传递音频和视频的标准数据包。在目前三网融合中也用来承载TS流,进行电视媒体数据的传播。
在GB28181中,使用的也是RTP的封包格式,基于PS进行封包,具体PS封包格式,可以参考上节内容。