2021年4月16日,多媒体技术领域盛会LiveVideoStackCon音视频技术大会在上海举行。本届会议以“新技术,新机会”为主题,聚焦在音频、视频、图像等技术的最新探索与应用实践。数十位业内知名讲师与来自全国各地的音视频工程师、多媒体工程师、图像算法工程师、运维与物联网工程师等分享了技术创新与最佳实践。
网易云信资深音视频引擎开发工程师王兴鹤受邀参会,在“网络传输与RTC”专题会场中进行了题为《网易云信QoS优化实践》的主题演讲,分享了在弱网环境下,提供良好音视频传输服务的思路和优化经验,以及云信在QoS优化方面具体的实践和思考,精彩的分享获得参会者的一致好评。
如何应对爆发式的音视频数据增长?
随着AI和5G的到来,以及疫情的变化,音视频数据呈现爆发式增长,音视频应用变得更加广泛,人们对音视频的品质需求也越来越高,视频分辨率从高清发展为超高清、VR,视频帧率也已出现60fps、120fps等应用,交互式的应用对端到端延时也提出了更高的要求。与此同时,设备的硬件性能也突飞猛进。
可以预见,随着5G的应用更为普遍,网络中传输的数据将会呈现爆发式增长,大量数据将会给网络传输带来巨大的挑战——网络服务提供商需要在技术层面做到对瞬息万变的网络环境有很强的适应能力,需要合理利用抗丢包、抗抖动,拥塞控制等手段应对变化的网络,需要在不同的网络特征和用户场景下充分发挥各项技术的优势,扬长避短,在有限的网络资源中,找到延时、画质、流畅三者之间的最佳平衡点,提供良好的音视频传输服务。
王兴鹤在演讲中认为:“虽然网络中常见的问题有丢包、抖动、拥塞、延时等不同的分类,但这些弱网的分类并不独立存在,而是会相互转化,相互影响;另外从接收端QoE的角度来看,网络问题固然会是我们分析弱网影响的重要部分,但音视频链路中其它环节带来的体验上的影响也不容小觑。为了给用户带来良好的音视频体验,QoS优化是整体的综合性的优化。”
用技术组合拳实现效果最大化
针对上述的一系列弱网问题,网易云信的QoS引擎采用了大量的技术手段进行抵抗,比如重传、FEC、GCC、Jitter Buffer等,具体阐述如下:
• FEC(前向纠错码)是在发送端额外发送一些冗余数据,用于抵抗网络丢包。当接收端检测到媒体数据发生丢包时,就可以利用接收到的冗余数据进行丢包恢复。
• 重传是当接收端检测到丢包时通过反馈给发送端丢包信息(NACK)进行相应数据的重传,最大的好处是码率利用率高,缺点是会引入额外的丢包恢复抖动,从而拉大延时。
• Jitter Buffer的作用是以最低的缓冲延时代价消除数据抖动,提供流畅的播放帧率,也就是说,在解码之前的任何环节引入的数据抖动,都会汇总到Jitter Buffer模块处理抖动消除。
除了重传、FEC等常规手段之外,长期参考帧技术打破了传统的向前一帧的参考规则,可以更加灵活地选择参考帧;在有丢包的场景下,接收端不需要等待丢包恢复也能继续显示画面,其最大的好处是低延时,不需要等待重传恢复,但是带来了压缩率的牺牲,在相同码率下表现为图像质量的牺牲;但长期参考帧比较适合1V1的场景,而多人场景时,需要大小流和SVC发挥作用,在带宽不足时,不同用户对清晰优先和流畅优先的需求不一样,SVC和大小流提供了灵活的机制满足不同应用的需求。
而具体到应用场景时,王兴鹤说:“我们要注意到不同应用场景的需求,比如通信场景更多的是用FEC,重传作为辅助,提升实时性。直播场景更多是用重传,FEC作为辅助,提升清晰度。”
这意味着,每一种技术都有各自的优点和不足,在解决主要问题的同时,可能会带来不同的收益降低;在不同的应用场景下,对于技术的选择也有不同要求。因此,仅仅支持了这些功能并不是很困难,困难的是如何调试优化各个模块的相关参数,让各个功能相互配合。
经过一系列综合优化后,网易云信的音视频通话可以做到端到端延时小于 200 ms,最高可抗 1000 ms 网络抖动,在网络丢包 70% 时仍能正常通话。
制定差异性策略 持续优化
在王兴鹤看来,QoS的优化是个长期持续的过程,主要体现在三个方面:
首先,是各类算法还需要不断的升级,FEC、重传、Jitter Buffer、Neteq、GCC等都需要进一步地精细化,并结合AI技术和反馈机制,适应不同网络的情况。
其次,要理解不同场景、不同用户的个性化需求,细分服务的颗粒度,提供更加差异化的产品和服务。例如1v1场景大多是交互性的应用,因此对延时和流畅要求较高;而多人场景中又可以细分1vN、NvN等,多人会议中,网络中传输流的数量将呈指数型上升,对算法和整体稳定性提出了更高的挑战。不同的场景的需求有明显的特征,我们需要将这些特征跟我们的算法和架构深度关联,将一些损失和收益的平衡做到极致,提供最高性价比的服务。
最后,要注意数据结果对产品迭代和优化的驱动,不能只是在理论层面做得很完善,还要结合实际执行效果的观测来建立闭环的反馈和优化机制。
这也是网易云信QoS引擎迭代升级的思路:对大部分场景,或者大部分指标都有优化技术的项目,那就相对简单,可以全面铺开落地;而对于有得有失的技术优化,首先需要做大量的对比测试、验证,尽可能得出各种情况下的实验室理论结果;其次要求所有已发版的相关功能参数可控,结合线上实际的观测数据,做数据挖掘和综合分析,形成数据驱动下的闭环效应,线上数据一方面可以验证实验室的测试结果,另一方面可进一步指导后续优化工作。
“QoS优化最大的困难是如何把握各项资源的平衡,并寻找到最佳平衡点“,王兴鹤总结说,这也是网易云信Qos引擎在进行的深层次的QoS优化工作——基于场景的优化,制定差异化的策略适应不同的场景,并不断迭代优化。