随着WebRTC标准的逐步推广,实时音视频通讯技术受到越来越多公司和技术人员的关注。对于交互式音视频应用而言,稳定、低延时、通话质量清晰可靠是其基本需求。在互联网环境下,音视频的通话质量与以下因素有关:一是编码码率、帧率和分辨率等编码因素;二是网络的接入类型和接入设备性能;三是对丢包、抖动、乱序以及网络拥塞的自适应调整能力,即QoS(Qualityof Service,服务质量)。
交互式实时视频应用通常采用RTP协议进行音视频传输,RTP头部提供了诸如负载类型、时间戳、序列号和同步源等信息保证基本的音视频传输需求。但与TCP不同,RTP协议底层采用不可靠的UDP传输层协议,当网络过载或拥塞,无法实现对丢包、抖动、乱序以及网络拥塞的自适应调整。与音频相比,视频传输由于所占的带宽更大,更易受到网络环境变化的影响,因此以下将以视频为例分析Qos提升途径。
对与实时视频来说,网络出现丢包将直接导致接收端画面出现马赛克和花屏。有多种策略可以解决,包括:基于NACK反馈的丢包重传,前向纠错FEC和参考帧选择RPS,这些策略通常与编解码端的容错技术(如:帧内刷新和错误隐藏)配合使用。
基于NACK反馈的丢包重传方法:接收端循环检查接收缓冲,当发现丢包后使用RTCPNACK反馈报文将丢包信息反馈给发送端;发送端接收NACK反馈并解析后从发送缓存取出对应RTP包,并再次发送给接收端。该方法的缺点是增大了端到端的延迟,尤其在丢包大量发