WebRTC 中带宽估计与拥塞控制算法

WebRTC 中的带宽估计与拥塞控制算法有很多,以下是其中几种:

- GCC(Google Congestion Control):基于丢包的带宽估计,其基本思想是根据丢包的多少来判断网络的拥塞程度。丢包越多则认为网络越拥塞,发送速率就需要降低;如果没有丢包,则说明网络状况较好,可以提高发送码率以探测是否有更多的带宽可用。

- Goog-REMB:基于接收端的延迟算法,利用延迟值,通过卡尔曼滤波器估计出下一时刻的网络带宽趋势。但效果的准确性和公平性不如 Transport-CC,目前已经被 WebRTC 的新版本所淘汰。

**- Transport-CC:**基于发送端的延迟算法,也是利用区间延迟值,通过 TrendLine 滤波器(最小二乘法滤波器),通过斜率的增加或者减小来判断当前网络的拥塞状况。

Transport-CC将拥塞评估算法从接收端移动到了发送端,是通过接收端记录数据包到达时间,构造相关RTCP包,然后反馈给发送端,在发送端做带宽估计,从而进行拥塞控制实现的。这样做除了方便维护,也增加了相关算法的灵活性,因为大多数处理逻辑都放到了发送端。

**- BBR:**一种基于模型的拥塞控制算法,BBR 的模型包括两个显式估计参数:Bottleneck Bandwidth(瓶颈带宽)和 Round Trip Propagation Delay(双向往返传播延迟)。BBR 使用其模型寻找具有高吞吐量的操作点和低延迟,以在最佳工作点附近工作,系统需要保持两个条件:Rate Balance(最大发送速率)和 Full Pipe(BDP = BBR.BtlBw * BBR.RTprop)。

这些算法在 WebRTC 中都有广泛的应用,具体使用哪种算法取决于实际需求和网络状况。

相关推荐
EasyGBS1 天前
RTSP、RTMP、HLS、FLV、WebRTC……国标GB28181视频平台EasyGBS五大流媒体协议,你的场景该用哪个?
音视频·webrtc
REDcker2 天前
libdatachannel 快速入门
c++·webrtc·datachannel
冯程6 天前
WebRTC 之 AllocationSequence 详解
webrtc·音视频开发
阿拉斯攀登8 天前
售货柜实战:IPC 拉流 → 抽帧 → YOLO 识别完整流水线
yolo·ffmpeg·音视频·webrtc·视频编解码
阿拉斯攀登8 天前
RTSP 拉流与录制:IPC 摄像头本地录像完整方案
ffmpeg·音视频·webrtc·实时音视频·视频编解码
阿拉斯攀登8 天前
数据通道:RTCDataChannel 可靠与不可靠传输
音视频·webrtc·实时音视频·媒体·视频编解码
REDcker9 天前
腾讯TRRO SDK深度剖析
音视频·webrtc·实时音视频·直播·rtc·腾讯
阿拉斯攀登9 天前
FFmpeg 转码详解:封装格式、编码器、码率控制
ffmpeg·音视频·webrtc·实时音视频·视频编解码
阿拉斯攀登9 天前
FFmpeg 入门:命令行的 20 个常用场景
ffmpeg·音视频·webrtc·视频编解码
阿拉斯攀登9 天前
媒体流与轨道:MediaStream 与 MediaStreamTrack
嵌入式硬件·webrtc·实时音视频·媒体·视频编解码