• Chris Zou
    2021-12-21
    老师除了原理,能否给一些可以实践上手的代码参考,或者开源代码的具体模块?

    作者回复: webrtc的带宽预测模块就是开源实现。webrtc的GoogCcNetworkController这个类主要是实现带宽预测算法的。OnTransportPacketsFeedback这个函数就是transport-cc报文反馈之后开始做基于延时和丢包的带宽预测以及最大带宽探测算法的。其实这一块的代码是很复杂的,所以我想通过口头讲述原理来减少一些看代码的难度。你可以对着课程看代码。

    
    3
  • Geek_9527
    2021-12-14
    最大带宽预测 一般多大间隔检测一次 是否网络带宽不同 检测间隔也需要做调整呢?

    作者回复: webrtc中在发送码率小于预估带宽的60%之后每5s探测一次。超过70%之后停止探测

    共 2 条评论
    2
  • Geek2014
    2021-12-14
    最终目的是尽量避免拥塞,充分利用有效的带宽资源

    作者回复: 回答的很好

    
    2
  • 翻山越岭
    2021-12-13
    根据带宽预测,实时调整码率,保证画面流畅

    作者回复: 点赞

    
    1
  • 播放技术部
    2022-09-23 来自浙江
    “最大带宽探测算法” 这块有个疑惑想请教下,就是定时发送额外的探测包不会消耗额外的网络带宽吗?其他拥塞控制算法(如bbr)带宽探测时也依赖发送端的发送量从而有类似“比较小的带宽调整上去需要一段时间”的问题吗?

    作者回复: 如果当前需要发送的数据量不够带宽探测的数据量的话是需要使用padding包的,所以是需要额外消耗一些网络带宽的,但是因为探测的时间是非常短的,所以影响不大。 bbr的探测是在probe_bw的周期用1.25倍的pacing_rate来上探的吧,如果数据量不够的话也是需要padding。 gcc有“比较小的带宽调整上去需要一段时间”这个问题是没有最大带宽探测的话有这个问题,因为受限于发送数据量。bbr应该会好很多,因为他很多时候都处于probe_bw的状态,会不断的探测最大的带宽

    
    
  • 播放技术部
    2022-09-23 来自浙江
    “当前接收码率离最大带宽比较远”,想问下这里最大带宽是怎么获取的?怎么知道最大带宽是多少呢?

    作者回复: 课程中有介绍的。 “但是下降带宽的时候需要做另外一个事情就是更新当前网络的最大带宽。因为处于下降带宽的过程中,说明当前发送数据量已经达到甚至超过了网络的承受能力。这个时候适合更新网络的最大带宽,将当前的接收码率与之前的最大带宽做加权平均求得当前的最大带宽,并更新最大带宽的标准差。这两个值之后调高带宽的时候需要用。”

    
    
  • Chris Zou
    2022-01-11
    请教老师,webrtc中的这些网络传输策略,包括带宽预测,NACK、FIR、FEC、PACER等,对于媒体网关服务器来说,是否有必要实现这些能力?

    作者回复: nack、FIR还有带宽预测肯定要的。fec服务器可以实现也可以只在发送端做。pacer会带来延迟可以根据实际情况是不是需要做。

    
    
  • 一身龙骨
    2021-12-19
    最大带宽探测算法,文字中说取发送方和接收方二者最大,后面图中又说取二者最小,到底是啥呢

    作者回复: 是最小值,笔误了。多谢兄弟提醒

    
    
  • ,
    2021-12-16
    另外remb 里算mi实际使用中发现 锯齿状时延,平均在200ms上 锯齿幅度不是很大,丢包不多时,码率下降的很快,大佬这块除了设置最小码率拖住底,有什么好办法去优化一个更普适的机制么。

    作者回复: 码率下降快是因为时延抖动导致进入了过载了吗?如果抖动大我觉得需要看看是什么导致抖动大。

    
    
  • 写点啥呢
    2021-12-13
    请问老师,“最大带宽”这里指的是带宽资源最大值还是目前带宽达到过的最大值么?我的疑惑在上调的乘性和加性增加判断上,“码率大于最大带宽三倍方差”,如果最大带宽含义资源最大值的话此时应该无法继续调整了。请老师解惑,谢谢。

    作者回复: 指的是前面出现过载时的带宽,意思是到了这里要慢点加,防止又过载了。

    
    