在实时通信领域,只有当Codec的优化适应了当前的网络状况,设备平台及应用场景,用户才能得到最佳的体验。在LiveVideoStackCon2018大会中声网Agora视频工程师吴晓然详细介绍了如何设计与实现基于QoE的实时视频编码优化。本文由LiveVideoStack整理而成。
文 / 吴晓然
整理 / LiveVideoStack
大家好,我是吴晓然。本次将为大家介绍基于QoE的实时视频编码优化探索。实时音视频的传输框架大同小异,虽然不同厂商在一些技术细节的打磨上略有差异,但都有一个共同的目标那就是QoE——用户体验质量。那么其根本原因何在?
首先,互联网时代本身主要面向用户,用户体验是是衡量产品价值的重要维度,从用户的角度出发进行优化无可厚非;其次,基于用户体验的优化是当下最好的选择,目前我们的学术积累相对于欧美发达国家仍有一定差距,单纯地依靠学术创新推动技术改革的道路不但效率较低,也会影响到我们追赶时代潮流的步伐,故而我们可以从优化用户体验的角度出发,实践一些有用的创新举措从而推进技术的改革;最后,中国拥有全世界最大的互联网消费群体,我们的互联网日活跃量都是以亿为单位计量,庞大的用户基数下蕴含着宝贵的数据财富,这些数据对任何一家互联网企业而言都是一种无形的巨额资产。数据是21世纪的石油,谁能够充分发掘数据背后的价值谁就能成为市场的主导者,为用户提供更优质的服务,打造更优秀的产品。
本次分享内容将主要围绕以下几个方面:
1. 实时视频通讯的QoE
理想条件下,采集端获取到的原视频数据会经过前处理、编码后通过网络传输至解码端,解码端接收数据处理后再进行后处理与渲染,最后得到输出的视频产品。如果输出视频产品清晰度不佳那么我们可通过提高分辨率、减小QP、增加算法复杂度等方法提高清晰度;而如果流畅度不佳那么则可通过提高fps的方法优化流畅度。
但在现实条件下,不稳定的网络使得在网络传输流程中易出现带宽变化、延时抖动、网络丢包等不良状况:即使我们有带宽预测的算法,但带宽变化的不可预知性仍然是困扰我们的一大难题;延时抖动更是任何一个网络中或多或少都会发生的状况;而随机丢包对实时传输造成的影响最大,当网络状况很差时高丢包率会导致视频播放相当卡顿并且无计可施。面对这些问题时,单纯地提高分辨率、减小QP、增加算法复杂度或提高fps只会加剧带宽的占用并增加处理时间与功耗,其结果就会导致网络拥塞、使得实时性无法达到要求,尤其移动端的用户体验会被大打折扣,继而出现手机发热、待机时间下降等诸多不良状况。
根据理论与实践我们总结得出基于QoE的实时视频编码优化目标为:终端显示高质量、接受端低延时、发送端低功耗。
2. Agora的探索与实践
明确了实时视频编码优化目标之后,与大家分享一下我们在此方面进行的探索与实践。我们的优化策略可以大致分为三个部分:前处理、编解码、后处理。