8.3 流控
当带宽评估准确后,如果发送的的码流还是大于带宽大小,此时就需要通过流控来进行控制了 。流控的作用是当输出码流大于带宽时,降低发送码率,以防止发生拥塞 。当然它会导致时延的增加 。实际上,对于流控来说,它需要控制两个点:第一个点是Pacer,降低发送码率 。当然仅降低发送码率还不够,因为如果编码器仍然输出大量码流给Pacer,那么Pacer 的缓冲区迟早会被撑爆 。所以在控制Pacer让它减少发送码率的同时,一定要降低音视频的编码器的输出码率,从而保持平衡,进而使数据平缓下行 。
正如我前面所说的,流控虽然防止了网络拥塞的发生,但会增加一些延时,增加的延时最终会反应到实时通信的总指标里,总的延时必须控制在500ms以内 。比如以前端到端时延是200ms,由于带宽不足,时延增加到300ms、400ms都是可以的,但一定不要超过500ms 。
此外,对于编码器的输出码流来说,如果流控通过直接降低码流仍然不能与带宽适配时,还可以通过降低分辨率的方式来降低码流 。总之,在带宽不足时,要想尽办法减少数据量 。实在不行,也可以关掉视频只保留音频来保障网络的畅通 。
9 总结
总结一下,对于服务质量保障,首先提高网络质量,NACK和FEC解决丢包问题,JitterBuffer解决视频的乱序与抖动,NetEQ解决音频的乱序与抖动;带宽评估通过Goog-REMB和Goog-TCC,还有丢包的带宽评估;为了保障实时性,需要选择更优质的线路,比如客户端与服务端通信的时候选择更好的路线节点,保证云端网络带宽等等;从业务上,减少数据量可以用AV1、SVC、Simulcast、动态码率,减少业务;在防拥塞上,通过Pacer进行流控,只要能控制在500ms之内,适当增加时延也是可以接收的 。
以上就是本次分享的全部内容,谢谢!
Q&A (部分)
1. 路径的选择是WebRTC内部自动选择的吗?
是自动选择的 。WebRTC会自动判断通信的双方是否在同一个局域网内,如果是就直接在局域网内建立连接;如果不是,会通过STUN协议获取各自的外网地址,然后进行NAT穿越;如果还不成功的话,才会选择TURN服务进行数据中转 。
2. WebRTC网络传输质量衡量指标有什么?
衡量任何一个实时传输系统时,首要看它的时延是否达到500ms以内 。其实500ms对于实时通信而言,也是比较苛刻的标准了,因为网络的变化是非常大的, 所以要实现这个指标其实难度也是蛮大的 。其次是丢包率,这是非常关键的指标,刚才说到2%的丢包率代表网络比较好;小于10%,对于WebRTC来说,代表目前的带宽是准确的;超过10%则代表发生了拥塞 。有些厂商说它的产品可以抗xx%的丢包,这样的前提是不认为丢包是一个指标,但在真网络中,当路由的缓冲被撑爆后,必然会出现大量丢包,如果不把丢包当作指标的话,就缺少了一种判断网络拥塞发生的条件,这显然是不合理的 。
猜你喜欢
- 四川麻辣小龙虾的做法 四川麻辣小龙虾的制作方法
- 床虱子怎么彻底去除 床虱子彻底去除的方法
- 如何自制干锅大虾 自制干锅大虾的做法介绍
- 烤箱制作烧饼的方法 烤箱怎么制作烧饼
- 屏蔽的信息在哪里看 怎么查看手机被拦截的短信
- 猪腰怎么做好吃呢 猪腰好吃的做法
- 油炸粑的做法 10步教你做美味的油炸粑
- 手机碎屏的3个重要危害 手机碎屏使用的危害有哪些
- 川贝炖雪梨一天吃几次 一天吃川贝炖梨的次数为多少合宜
- 赞助合同的模板是什么
