一、概念说明

由于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 区别相关推荐

  1. 流媒体学习之路(WebRTC)——GCC分析(1)

    流媒体学习之路(WebRTC)--GCC整体分析(1) 文章目录 流媒体学习之路(WebRTC)--GCC整体分析(1) 一.简介 二.类分析 2.1 RtpTransportControllerSe ...

  2. WebRTC GCC 拥塞控制算法(TFB-GCC)

    目录 一. 前言 二. TFB-GCC原理 1. 接收端记录并反馈收包情况 (1)transport-wide sequence nunmber (2)RTCP RTPFB TW 报文 2. 发送端结 ...

  3. 编译器cc、CC、gcc、g++区别

    编译器cc.CC.gcc.g++区别 看C语言经典教材<C程序设计语言>中,Linux下编译C代码用的是cc, 广为人知的C编译器的gcc, 还有CC.g++那么有啥差异呢 一.cc是Un ...

  4. WebRTC GCC拥塞控制算法详解

    1.WebRTC版本 m74 2.GCC的概念 GCC全称Google Congest Control,所谓拥塞控制,就是控制数据发送的速率避免网络的拥塞.可以对比TCP的拥塞控制算法,由于WebRT ...

  5. WebRTC GCC代码深度解读(12) Probe:ProbeController

    1. 介绍 在一些场景,如初始阶段,或者应用的需求带宽变大过后,如果通过AIMD方式来增加估计带宽,速度较慢.GCC里面提供了另外一个工具,即探测.probe的思想是,在短时间内以目标码率发送数据,如 ...

  6. WebRTC GCC 拥塞控制算法(REMB-GCC)

    目录 一. 前言 二. REMB-GCC算法原理 1. 接收端基于延时梯度的带宽预估 (1)Arrival-time filter (2)Overuse Detector (3)Adaptive th ...

  7. 流媒体学习之路(WebRTC)——GCC分析(2)

    背景   事实上,带宽估计的算法有很多,有三种比较经典方案:   GCC 算法[ https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc- ...

  8. VC编译器与GCC编译器的区别

    首先,所谓语法区别是针对程序设计语言而言的,这里首先你要分清楚它们之间的区别. Gcc:它是一款开源的C语言编译器,原来只能在Linux系统上使用,后来移植到了Windows操作系统上,以此为基础的编 ...

  9. Linxu终端gcc与gcc -c的区别

    gcc的更多用法详见下链接:      GCC 参数详解 | 菜鸟教程gcc 与 g++ 分别是 gnu 的 c & c++ 编译器 gcc/g++ 在执行编译工作的时候,总共需要4步: 1. ...

最新文章

  1. 计算机网络华为模拟器,资源分享之计算机网络虚拟实践
  2. C#_细说Cookie_Json Helper_Cookies封装
  3. springboot 访问html_Spring Boot中使用Spring Security进行安全控制
  4. c语言修改windows系统时间,c语言实现系统时间校正工具代码分享
  5. 使用公用表表达式的递归查询
  6. QT Core | 信号槽02 - GUI上按钮触发应用程序的函数(lambda表达式)
  7. 等保制度与ISO27001的区别与联系
  8. 九宝老师微信小程序开发的过程
  9. WPF基础(八)bitmapImage.EndInit()引发异常 未找到适用于完成此操作的图像处理组件:可能是收发图片格式不一致导致的。
  10. html代码在线获取,在线客服系统html代码的获取与生成方式 - 快商通
  11. 怎么把高清图片导入到CAD图纸文件中?
  12. 字体图标svg改变颜色
  13. FineReport表格软件-CSS动态切换年月日查询报表
  14. 【详解】Executors框架之Executors
  15. 【MVC】MVC分页
  16. 【堆】 大根堆和小根堆的建立
  17. 技术领导力: 深度访谈《深入分布式缓存》
  18. yolov3 训练终端参数涵义
  19. K8S的 CNI 详细原理以及解释
  20. mybatis高级映射一对多查询(一)

热门文章

  1. MATLAB自动驾驶(2)——创建交通参与者和轨迹
  2. 从数据库库索引说到空间数据索引
  3. handlebars html转义,介绍 | Handlebars 中文文档 | Handlebars 中文网
  4. 为什么越老实的人,越得不到提拔?
  5. 如何将Android Studio与华为软件开发云代码仓库无缝对接(二)
  6. ImageRanger Pro Edition for Mac(图片管理工具)
  7. ARcore项目 MatchVS联网实现部分教程
  8. liunx mysql 3306端口开启_linux中怎么开启mysql的3306端口
  9. 现学现用-我的第三个小小小私活
  10. 使用dropzone实现文件拖拽上传功能