【带宽估计module】接收侧 RemoteBitrateEstimatorAbsSendTime 2 实现
- 前面的文章,我们知道cc需要BE
- 具体流程,参考大神分析如下:
- 参考大神: WebRTC GCC拥塞控制算法详解
GCC核心思想就是通过预测可用带宽来控制发送的速率,会结合发送端和接收端两端各自估测的带宽来综合计算, 其中发送端的带宽估测主要依赖于丢包率(其实也有延迟), 接收端的带宽估测依赖于延迟(的变化)。
- 参考大神: WebRTC GCC拥塞控制算法详解
接收端处理每个RTP包,累计5ms的探测包簇计算初始带宽,然后通过到达时间滤波器、卡尔曼滤波器、过载检测器来计算链路的延迟变化,从而判断链路的拥塞状态,结合输入码率来估算接收端的带宽,然后通过REMB包反馈给发送端,该反馈的带宽将直接被发送端采用,并作为发送端后续带宽调整算法的基准。