🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] > [参考](https://cloud.tencent.com/developer/article/1736782?from=article.detail.1736771) ## 概述 RTP需要RTCP为其服务质量提供保证。 RTCP的主要功能是: - 服务质量的监视与反馈 -媒体间的同步 - 以及多播组中成员的标识。 在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,各参与者可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据 RTCP也是用UDP来传送的,但RTCP封装的仅仅是一些控制信息,因而分组很短,所以可以将多个RTCP分组封装在一个UDP包中。RTCP有如下五种分组类型 | 类型 | 缩写 | 用途| | --- | --- |--- | | 200 | SR(sender Report) | 发送端报告 | |201|RR(Receiver Report) | 接收端报告| |202 | SDES (Source Description Items) |源点描述| | 203| BYE| 结束传输| |204| App| 特定应用| ## 协议 SR 类型的协议 ![](https://img.kancloud.cn/03/ad/03add470a811706ff3640f5b5216c7e9_668x553.png) header * 版本(V):同 RTP 包头部 * 填充 ( P ) :同 RTP 包头部。 * 接收报告计数器(RC):5b 该 SR 包中接收的报告块的数目。 * 包类型(PT): 8bit SR 包类型为 200 * 长度(length):SR 包以 32bit 为 1 单位的长度减 1 sender info * 同步源(SSRC):SR 包发送的同步源标识符。与对应 RTP 包中的 SSRC 一样。 * NTP 时间戳(Network Time Protocol):SR 包发送时的绝对时间。用于同步不同的流。 * RTP 时间戳:与 NTP 时间戳对应,与 RTP 包中的时间戳具有相同的初始值。 * Send’s Packet count:从开始发包到产生这个 SR 包的这段时间内发送者发送的有效数据的总字节数,不包括头部和填充,发送者改变 SSRC 时,该域要清零。 * 同步源 n 的 SSRC 标识符:该报告中包含的是从该源接收到的包的统计信息。 report block 1 * 丢失率:表明从上一个 SR 或 RR 包发出依来从同步源 n 发送的 RTP 包的丢失率。 * 累计丢失数据:从开始接受 SSRC_n 的包到发送 SR 这个时间段内 SSRC_n 发送的 RTP 丢失的总数目。 * 收到的扩展最大序列号:从 SSRC_n 收到的从 RTP 数据包中的最大序列号。 * 接收抖动(Interarrival jitter):RTP 数据包接收时间的统计方差估计。 * 上次 SR 时间戳(Last SR):取最近从 SSRC_n 收到的 SR 包中的 NTP 时间戳中的中间 32bit。如果还未收到 SR 包,则为 0。 * 上次依赖 SR 延迟(Delay since Last SR):从上次 SSRC_n 收到 SR 包到发送本包的延迟