四川省城乡和住房建设厅官方网站,wordpress 500 安装,wordpress购买邀请码,大丰网店制作文章目录RTCP支持的消息类型RTCP协议头WebRTC的反馈报文RTPFB支持的报文类型#xff1a;PSFB支持的报文类型#xff1a;参考RTCP是RTP的控制协议.那么RTCP能对RTP做哪些控制呢#xff1f;其中最为大家熟知的就是
丢包控制。发送端发送数据后#xff0c;接收端如果发现有RTP…
文章目录RTCP支持的消息类型RTCP协议头WebRTC的反馈报文RTPFB支持的报文类型PSFB支持的报文类型参考RTCP是RTP的控制协议.那么RTCP能对RTP做哪些控制呢其中最为大家熟知的就是
丢包控制。发送端发送数据后接收端如果发现有RTP包丢失了可以使用RTCP的
NACK报文通知发送方告诉对方具体是哪些包丢失了然后让发送方重发前面丢失的包。此外接收端还可以使用RTCP的
RR报文向发送端发送接收报告报告中记录着从上一次报告到本次报告之间丢失了多少包、丢包率是多少、延时是多少等一系列信息。同理发送端也可以向接收端发送
SR报文报告一段时间内一共发送了多少包等。RTCP支持的消息非常多在此我们将一些最常见的RTCP报文消息整理了出来.SR和RR报文。这两个报文在WebRTC中至关重要因为网络质量评估与控制需要的大量参数都是从这两个报文中获得的。下面介绍一下RTCP支持的其他的消息类型RTCP支持的消息类型 SDES报文是用来描述音视频媒体源的。它可以描述的内容包括媒体源的名称、Email地址电话等。但实际上这些描述项都没太大价值。唯一有价值的是CNAME项其作用是将不同的源SSRC绑定到同一个CNAME上。举个例子当SSRC有冲突时可以通过CNAME将旧的SSRC更换成新的SSRC从而保证在通信的每个SSRC都是唯一的。 BYE报文用于说明哪些音视频媒体源现在不可用了。当WebRTC收到该报文后应该将SSRC所对应的通道删除。 APP报文是给应用预留的RTCP报文应用可以根据自己的需要自定义一些应用层可以解析的报文。 RTPFB报文即RTP的反馈报文是指RTP传输层面的报文。该报文可以装入不同类型的子报文。 与RTPFB对应的是PSFB即RTP中与负载相关的反馈报文。同样该报文也可以装入不同类型的子报文。
RTCP协议头
RTCP协议头如下
Version即协议版本固定值为2。P字段为填充位标识。PT字段即Payload Type与RTP中的PT字段类似。 RTCP中的Count字段是RTP中所没有的该值针对RTCP中不同的报文有不同的含义 对于RR/SR报文而言Count表示它们所携带的接收报告的个数 对SDES报文而言Count表示SDES报文中item的个数 对于BYE报文而言Count表示BYE报文中SSRC/CSRC的个数 而对于APP报文来说变化就比较大了Count用于标识应用自定义的子消息类型。 Length字段表示整个RTCP包的大小包括RTCP头、RTCP负载以及填充字节。需要注意的是Length字段是以4字节为单位的即N−1个4字节。
WebRTC的反馈报文
已知PT为205和206的报文类型属于反馈报文。报文中可以包含多个子报文其中WebRTC使用到的报文只有某几项。
RTPFB支持的报文类型 第一项NACK用于通知发送方在上次包发送周期内有哪些包丢失了 NACK报文中包含两个字段PID和BLP。PIDPackage ID字段用于标识从哪个包开始统计丢包 而BLP16位字段表示从PID包开始接下来的16个RTP包的丢失情况。BLPBitmask of Following Lost Packet从丢失包开始的位掩码 第二项TMMBR和第三项TMMBN是一对报文TMMBR表示临时最大码流请求报文TMMBN是对临时最大码流请求的应答报文。这两个报文虽然在WebRTC中实现了但已被WebRTC废弃其功能由TFB和REMB报文所代替。 第四项TFB是WebRTC中TCC[插图]算法的反馈报文该报文会记录包的延迟情况然后交由发送端的TCC算法计算下行带宽。(TCCTransport-wide Congestion Control基于发送端的带宽评估算法)
PSFB支持的报文类型 PSFB报文包括PLI报文、FIR报文以及REMB报文。 其中PLI报文与FIR报文很类似当发送端收到这两个报文时都会触发生成关键帧IDR帧。 PLI报文是在接收端解码器无法解码时发送的报文。 FIR报文主要应用于多方通信时后加入房间的参与者向已加入房间的共享者申请关键帧。通过这种方式可以保障后加入房间的参与者不会因收到的第一帧不是关键帧而引起花屏或黑屏的问题。 REMB报文是WebRTC增加的反馈报文用于将接收端评估出的带宽值发给发送端。不过由于最新的WebRTC已全面启用基于发送端的带宽估算方法即TCC因此目前REMB仅用于向后兼容不再做进一步更新。
参考
李超《WebRTC音视频实时互动技术:原理、实战与源码分析》 https://weread.qq.com/web/reader/377320f07260a55337761c1kc81322c012c81e728d9d180