WebRtc GCC、Sendside-BWE 区别
一、概念说明
由于webrtc里面包含GCC、Sendside-BWE两种拥塞控制算法。M55之前用的是GCC,M55之后用的是Sendside-BWE。里面有很多概念梳理如下,以免混淆,不方便理解代码。
GCC | Sendside-BWE | |
---|---|---|
码控计算模块 | 接收端 | 发送端 |
RTP头部扩展 | AbsSendTime | TransportSequenceNumber |
接收端关键对象 | RemoteBitrateEstimatorAbsSendTime | RemoteEstimatorProxy |
网络延时滤波器 | Kalman Filter | Trendline Filter |
接收端反馈RTCP报文 | REMB | TransportCC |
二、BWE三个典型的算法
Google Congest Control(https://tools.ietf.org/html/draft-ietf-rmcat-gcc-02) 。
爱立信的SCEAM(https://github.com/EricssonResearch/scream) 。
MIT的SPROUT(http://aim.nms.lcs.mit.edu/papers/nsdi13-sprout.pdf)。
Mozilla的这篇文章讲述了拥塞控制算法演变的历史(https://blog.mozilla.org/webrtc/what-is-rmcat-congestion-control/) 。
参考
https://blog.csdn.net/CrystalShaw/article/details/82981183
WebRtc GCC、Sendside-BWE 区别相关推荐
- 流媒体学习之路(WebRTC)——GCC分析(1)
流媒体学习之路(WebRTC)--GCC整体分析(1) 文章目录 流媒体学习之路(WebRTC)--GCC整体分析(1) 一.简介 二.类分析 2.1 RtpTransportControllerSe ...
- WebRTC GCC 拥塞控制算法(TFB-GCC)
目录 一. 前言 二. TFB-GCC原理 1. 接收端记录并反馈收包情况 (1)transport-wide sequence nunmber (2)RTCP RTPFB TW 报文 2. 发送端结 ...
- 编译器cc、CC、gcc、g++区别
编译器cc.CC.gcc.g++区别 看C语言经典教材<C程序设计语言>中,Linux下编译C代码用的是cc, 广为人知的C编译器的gcc, 还有CC.g++那么有啥差异呢 一.cc是Un ...
- WebRTC GCC拥塞控制算法详解
1.WebRTC版本 m74 2.GCC的概念 GCC全称Google Congest Control,所谓拥塞控制,就是控制数据发送的速率避免网络的拥塞.可以对比TCP的拥塞控制算法,由于WebRT ...
- WebRTC GCC代码深度解读(12) Probe:ProbeController
1. 介绍 在一些场景,如初始阶段,或者应用的需求带宽变大过后,如果通过AIMD方式来增加估计带宽,速度较慢.GCC里面提供了另外一个工具,即探测.probe的思想是,在短时间内以目标码率发送数据,如 ...
- WebRTC GCC 拥塞控制算法(REMB-GCC)
目录 一. 前言 二. REMB-GCC算法原理 1. 接收端基于延时梯度的带宽预估 (1)Arrival-time filter (2)Overuse Detector (3)Adaptive th ...
- 流媒体学习之路(WebRTC)——GCC分析(2)
背景 事实上,带宽估计的算法有很多,有三种比较经典方案: GCC 算法[ https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc- ...
- VC编译器与GCC编译器的区别
首先,所谓语法区别是针对程序设计语言而言的,这里首先你要分清楚它们之间的区别. Gcc:它是一款开源的C语言编译器,原来只能在Linux系统上使用,后来移植到了Windows操作系统上,以此为基础的编 ...
- Linxu终端gcc与gcc -c的区别
gcc的更多用法详见下链接: GCC 参数详解 | 菜鸟教程gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步: 1. ...
最新文章
- 计算机网络华为模拟器,资源分享之计算机网络虚拟实践
- C#_细说Cookie_Json Helper_Cookies封装
- springboot 访问html_Spring Boot中使用Spring Security进行安全控制
- c语言修改windows系统时间,c语言实现系统时间校正工具代码分享
- 使用公用表表达式的递归查询
- QT Core | 信号槽02 - GUI上按钮触发应用程序的函数(lambda表达式)
- 等保制度与ISO27001的区别与联系
- 九宝老师微信小程序开发的过程
- WPF基础(八)bitmapImage.EndInit()引发异常 未找到适用于完成此操作的图像处理组件:可能是收发图片格式不一致导致的。
- html代码在线获取,在线客服系统html代码的获取与生成方式 - 快商通
- 怎么把高清图片导入到CAD图纸文件中?
- 字体图标svg改变颜色
- FineReport表格软件-CSS动态切换年月日查询报表
- 【详解】Executors框架之Executors
- 【MVC】MVC分页
- 【堆】 大根堆和小根堆的建立
- 技术领导力: 深度访谈《深入分布式缓存》
- yolov3 训练终端参数涵义
- K8S的 CNI 详细原理以及解释
- mybatis高级映射一对多查询(一)
热门文章
- MATLAB自动驾驶(2)——创建交通参与者和轨迹
- 从数据库库索引说到空间数据索引
- handlebars html转义,介绍 | Handlebars 中文文档 | Handlebars 中文网
- 为什么越老实的人,越得不到提拔?
- 如何将Android Studio与华为软件开发云代码仓库无缝对接(二)
- ImageRanger Pro Edition for Mac(图片管理工具)
- ARcore项目 MatchVS联网实现部分教程
- liunx mysql 3306端口开启_linux中怎么开启mysql的3306端口
- 现学现用-我的第三个小小小私活
- 使用dropzone实现文件拖拽上传功能