webrtc中的RTCP简介

讨论内容

RTCP在webrtc中起到音视频服务质量的反馈,在webrtc中起到关键作用,比如统计丢包率,延时和音视频同步等,都是通过RTCP的反馈来处理的。本文是对webrtc中的使用到的RTCP一个总结,从以下2个方面去分析总结RTCP,形成一个总体思路框架:

  1. 在webrtc中起到什么作用?
  2. 传输对象方式,即从发送端给接收端,还是接收端给接收端

RTCP类型

在这里插入图片描述
RTCP::RTPFB(RTP通用反馈), RTCP::XR(RTCP扩展)和 RTCP::PSFB(负载数据反馈)还有细的的划分,具体的介绍我们下个小节会说明。

RTCP分析

类型简称作用传输对象
201RR接受者报告,接收端反馈丢包率,延时等信息接收流端发给发流端
200SR发送者报告,主要用于接收端音视频同步发流端反馈给接收端
206PSFB负载类型反馈报告,发流端发送关键帧请求,推流端发送码率估计信息(PLI FIR发流端反馈给接收端) (AFB发流端反馈给接收端)
205RTPFBRTP质量反馈报告发流端发给接收端
202SDES源描述项,其中包括规范名 CNAME发流端发给接收端
202BYE参会者结束当前会话接收端和发送端可以互相发
207XRRTCP扩展 ( DLRR 用于计算RTT延时 )发流端发给接收端

RTCP::RTPFB

类型简称作用传输对象
1NACK丢包重传接收端发给发流端
15TCCWebRTC最新的拥塞控制算法(Sendside BWE)基于Transport-cc,接收端记录数据包到达时间,构造相关RTCP包,然后反馈给发送端,在发送端做带宽估计,从而进行拥塞控制接收端发给发流端

RTCP::PSFB

类型简称作用传输对象
1PLI关键帧请求接收端发给发流端
4FIR关键帧请求接收端发给发流端
15AFB在码率控制器根据规则计算出远端估计最大码率Ar,得到Ar之后,通过RTCP REMB报文返回发送端接收端发给发流端

关于 PLI 和 FIR 关键帧请求场景的差异,摘抄了下面这段文字,具体文章细节内容请点击链接添加链接描述

当解码端需要刷新时,可以发送FIR消息给编码端,编码端此时发送关键帧,刷新解码端。这有点类似PLI消息,但是PLI消息是用于丢包情况下的通知,而FIR却不是,在有些非丢包情况下,FIR就要用到。举两个例子:

  1. 解码端需要切换到另一路不同视频时,由于需要新的解码参数,所以可通过发送FIR消息,通知编码端生成关键帧,获取新的解码参数,刷新视频解码器;

  2. 在视频会议中,新用户随机时刻加入,各个编码端发送的视频不一定都是关键帧,所以新用户不一定能正常解码。此时该新加入用户发送FIR消息,通知各个编码端给它发关键帧,获取关键帧后即可正常解码。

RTCP::XR

类型简称作用传输对象
5DLRR用于计算RTT延时发流端发给接收端

丢包重传中有这样一个场景:

NACK模块会维护一个未确认的序列号列表,这个列表存放着接收方已发送的请求重传的序列号,但还没有收到对端的重传包的。

NACK模块会设置定时器定期检测该未确认的序列号列表,如果当前时间减去序列号的NACK发送时间大于DLRR 计算的RTT,则再次发送该序列号的NACK RTCP反馈信息。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值