【音视频第8天】mediasoup拥塞控制【未完待续】

WebRTC的拥塞控制方式主要有以下几个:Transport-cc、BBR-congestion、remb(BBR已被google从webrtc移除了)。mediasoup支持Transport-cc和remb。

一、前言

实时通信的延时指标

在这里插入图片描述

视频服务质量指标

在这里插入图片描述
音视频服务质量与带宽之间的矛盾、实时性与服务质量之间存在矛盾

提高服务质量的因素

在这里插入图片描述

影响网络质量的因素

影响网络质量的因素
丢包率(重点)
延时拥塞有关)
抖动(JitterBuffer、NetEQ)
乱序(JitterBuffer、NetEQ )

链路质量差、带宽满、主动丢包、光纤被挖
解决丢包的方法:NACK、FEC。如果RTT很长就不要用NACK,就用FEC。带宽充足的情况下可以用FEC,但是丢包因为网络拥塞不能用FEC,会加重拥塞。
NACK
在这里插入图片描述
丢包了不会立刻去请求而是会等一段时间,10ms-20ms通过RTCP的Nack,告诉发送端,然后发送端从发送历史记录中根据号找,然后再找到发过来。

一、webRTC拥塞控制算法

减少数据量、适当增加时延和更准确的带宽评估被统称为拥塞控制
WebRTC中包含多种拥塞控制算法:

  • GCC:(Google Congestion Contro,Google拥塞控制)GCC根据其实现⼜可细分为基于发送端的拥塞控制算法Transport-CC(Transport-wide Congestion Control,传输带宽拥塞控制)和基于接收端的拥塞控制算法Goog-REMB(Google Receiver Estimated Maximum Bitrate Google接收端评估的最⼤码流)
  • BBR:(Bottleneck Bandwidth and Round-trip propagation time),瓶颈带宽和往返传播时间
  • PCC:(Performance-oriented Congestion Control),基于性能的拥塞控制。
    重点关注一下GCC

二、GCC

2.1 Goog-REMB

⼀种是接收端的延时拥塞控制算法
Receiver Estimated Max Bitrate (REMB) 是一种RTCP 反馈消息,作为接收方,告诉发送方它可以接收的带宽是多少。发送者不知道接收方的带宽情况,它需要有一个机制由接收方告诉它有多少带宽可供传输, 这样发送方可以根据这个估计的带宽来调整分辨率(90p, 180p, 360p, 720p等)和帧率(每秒24, 30, 40, 60帧等)

在这里插入图片描述
RemoteBirate Estimator模块:它是接收端延时拥塞控制算法的管理模块,即“总负责⼈”。
Inter Arrival模块:将数据包按帧进⾏分组,然后对相邻的两组数据包进⾏单向梯度计算
OverUse Estimator模块:它利⽤Inter Arrival模块的计算结果,通过卡尔曼滤波器估算出下⼀时刻发送队列的增⻓趋势
OverUse Detector模块:⽤于检测当前网络的拥塞状态
AIMD Rate Controller:该模块⽤于计算发送码流大小。它通过OverUse Detec tor模块检测出的当前⽹络状态来变更⾃⼰的状态,并计算出发送码流的大小。

2.2 Transport CC

⼀种是发送端的延时拥塞控制算法【未完待续】
参考:流媒体学习之路(mediasoup)——拥塞控制分析
WebRTC 拥塞控制之 REMB - 接收方带宽估计

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值