RTP实时传输协议

RTP协议是包括一对协议:RTP和RTCP。 RTP传输数据,RTCP传输控制信息。 一般基于UDP,RTP使用偶数端口,RTCP使用下一个奇数端口。

层次关系: APP -> RTP -> UDP -> IP

1、RTP

RTP提供针对多媒体应用的端到端传输能力,主要用于流媒体的传输,包括音频和视频;  需要提供一些多媒体应用的特有功能:

(1)协商机制。解决音视频格式众多的问题。

(2)数据时间指示。让接受者知道数据包的时序关系,应用可以通过playback buffer来做平滑,还可以做音视频同步等。

(3)数据丢失指示。因为UDP不可靠,应用根据丢失数据的具体情况,做不同的操作,例如:I/B/P帧采取不同处理方式;动态调整编解码格式或分辨率,以便减少数据量。

(4)帧边界指示。一系列包的集合对应一帧,所以对一个完整的帧进行处理,比对单个包进行处理,会更合适。例如:丢弃一个完整的帧,只会卡顿,不会花屏;缩短或拉长两个单词之间的间隔,不会被用户察觉,但是改变某个单词本身的长度,体验就不好了。

上述功能,RTP的实现方式:

(1)由RTSP协商完成;

(2)(3)RTP Header有12字节的必填字段,其中包括时标和序号。时标是32位数值,是两次采样之间的间隔,用ticks表示,每个tick的时长在RTP配置文件或有效荷载格式中说明。 序号是16位数值,每个RTP包有一个序号。

2、RTCP

RTCP提供与数据流想联系的控制流。主要有三个功能:

(1)反馈应用程序和网络的性能;

(2)关联和同步来自同一个发送方的不同媒体流;

(3)运行发送方标识符,用于GUI显示。

参考资料:《计算机网络》《Computer Networks》,Larry L. Peterson, Bruce S.Davie。

上一篇:《Python自动化运维:技术与最佳实践》一导读


下一篇:在 Mybatis Plus 的单表操作中 in 的相关问题