一、组网环境

二、预置参数

或者

1、Client1、Client2、信令服务器连接在一个以太网交换机上。保证Client1与Client2走P2P。
2、在Client2上使用Network Emulator Client网损工具,配置固定丢包率为10%或者随机丢包率为10%
3、创建视频连接,观察视频质量变化情况。
三、预期结果
在10%丢包率的网络下,视频质量无明显块效应,视频无明显卡顿。
四、实际结果
1、在视频链接前一分钟左右,视频质量良好,无明显块效应,视频流畅性良好,无明显卡顿。
2、随着视频通话时间变长,视频卡顿越来越明显,后期完全卡住不动。根据显示统计结果,解码帧率为0。
五、分析原因
发现网损工具每N个包丢一包模式,会引发一个问题:
1、刚开始10个包丢一个丢包,降了帧率和码率,webrtc发送到网络上的报文少了,视频流畅可接受;
2、网损工具还是每10包丢一包,让webrtc继续降帧率码率,webrtc发送到网络上的报文再减少;
3、网损工具还是每10包丢一包,如此循环。。。。。。
导致最后webrtc将帧率降为0,就长时间卡顿下去。这类似于0.9*0.9*....*0.9最后等于0的原理。
另外也说明,webrtc目前的机制,无法解决长时间、持续丢包模型。
为了应对这种场景,可以配置BWE的最低码率。
六、附录
别人总结的丢包模型,mark一下
http://xuxinting.cn/2017/08/30/VoIP-TroubleShouter-burst-loss/
本文探讨在10%丢包率环境下,Webrtc视频通话的性能问题。初始视频流畅,但随时间推移,视频卡顿加剧,直至完全停滞,解码帧率归零。分析发现,Webrtc持续降低帧率和码率以适应丢包,最终导致帧率降至0。文章建议设置BWE最低码率来应对持续丢包。

被折叠的 条评论
为什么被折叠?



