摘要
本文描述了WebRTC提升通信质量的关键措施。
影响通信质量的因素
本文所述的“通信质量”特指指用户在使用WebRTC前端应用时的主观体验。
影响通信质量的因素有:
- 设备性能:用户的终端设备(包括PC和手机)性能不足时很难获得良好的通信体验。
- 网络带宽:带宽低于媒体流码率时容易出现卡顿的现象。
- 网络延迟:高延迟会影响视频画面的实时性。高带宽不一定有低延迟,延迟与路由设备有关。
- 网络抖动:网络实际带宽和包延迟的波动幅度。抖动越小,画面越平滑,声音越连续自然。
提升通信质量的一般措施
根据上一节的分析,容易得出提升通信质量的一般措施:
- 升级设备:购买性能更高的终端设备。
- 增加带宽:采用更优质的网络通信服务接入点。
- 减少流量:降低对视频画质的要求,不要采用太高的音视频编码码率。
以上措施虽然可以见效,但是受到用户意愿的约束,难以实施。
WebRTC提升通信质量的措施
在不改变用户意愿的前提下,WebRTC采用如下措施大幅提升了通信质量:
- 网络带宽评估:只有快速准确估计出当前可用的网络传输带宽,才能做到压缩传输时收放自如,画面可清晰可模糊,网络传输可快可慢。
- NACK/RTX:NACK是一种负向反馈机制,即接收方只有在没有收到数据的时候才通知发送方,消除频繁发送ACK报文的代价。RTX就是当发送方得知数据丢失后,重新发送一份丢失的包。
- JitterBufffer:适当缓冲一下,对乱序的包重新排序,增加小幅动态延迟以提升音视频渲染时的流畅度。
- FEC:前向纠错,通过冗余编码机制,让接收端有机会从已经收到的包中计算出丢失的包。此策略适用于网络丢包率较小且丢失的包分布较均匀的情况。
- NetEQ:网络均衡器,类似于音频播放设备中的频谱均衡器,主要用于音频,但是它均衡的不是频率,而是网络抖动。采用变声不变调的技术,在音频包不足时拉长播放时长,在音频包堆积过多时加快播放速度。
- 拥塞控制:根据网络带宽评估结果,动态调整视频编码率,平滑网络发送速率。
总结
本文简要介绍了WebRTC提升实时音视频通信质量的措施,帮助读者对WebRTC的通信技术栈建立初步认知。