[关闭]
@qinyun 2017-11-09T13:28:59.000000Z 字数 2313 阅读 2798

微信视频通话技术的演进之路

未分类


2012年7月,微信4.2版本首次加入视频通话功能,面对数亿微信用户复杂多样的网络和设备环境,微信多媒体团队在每个技术环节上持续深耕细作,不断提升整体视频通话质量。

在即将到来的2017ArchSummit全球架构师峰会上,腾讯专家研究员、微信视频技术负责人谷沉沉将以《数亿微信视频通话背后的视频技术二三事》为题发表演讲,届时,她将介绍微信视频通话的基本框架,以及在微信视频通话技术发展不同阶段的关键视频技术环节,探讨如何打造一个适合移动端视频通话的实用视频编解码器,如何适应不同网络下的传输,如何适应不同的设备和内容场景进行视频图像处理,以及如何评价海量用户的视频质量等问题。本次对谷沉沉老师的采访是对大会演讲的一次预热。

InfoQ:谷老师,请向我们介绍一下微信视频通话功能的发展历程,每个阶段解决了什么问题?

微信视频通话功能最早是在2012年7月的微信4.2版本发布的,从开始研发微信视频到现在,我觉得大致可以分为三个阶段:

第一个阶段主要是为了让视频通话在手机上“跑起来”。在第一个微信视频通话版本发布前后的那段时间,当时的移动设备的计算能力还比较低,单核主频1.0GHz的手机已经算市面上比较好的手机了,所以初期的视频通话版本对技术的计算复杂度和实现优化要求非常高。我们团队凭借早期在移动端的技术积累,搭建了一个轻量的、适合移动端视频通话的框架,并通过提升视频编解码速度、视频引擎代码性能优化,解决了“跑不动”的问题,当时我们在同等设备、同等视频清晰度下所能达到的通话帧率也是处于业界领先水平的。

第二个阶段主要是设备和网络适应性提升。随着设备处理能力不断增强,视频通话的帧率、分辨率、码率也都在不断提升,而且移动网络的带宽等服务质量等也在不断提升,同时微信海量用户的设备和网络的差距也在拉大,因此网络和设备的适配策略就变得非常重要了,这也是一个长期投入不断优化迭代的难点问题,通过这几年我们在码率控制、传输策略、容错保护等方面的持续研究,目前海量用户整体视频通话质量都有了非常明显的提升,当然很多细节策略我们现在也仍然在不断调整优化,力求为不同设备和网络下的每一位用户都提供尽可能优质的视频通话。

第三个阶段是视频压缩效率、主观质量提升。由于设备硬件处理能力的提升,目前很多手机都是四核、八核等,这样第一阶段仅仅为了“跑得动”而设计的技术跑在这些高性能设备上,CPU还是有富余计算能力的,所以我们开始研究加入一些复杂度较高的视频编码、图像前后处理等技术,提高压缩效率,在同等带宽下获得更高的视频质量。由于设备硬件不断升级,这类高压缩率的编码算法、高质量的图像前后处理技术研发也在持续升级,将来我们的视频通话会更加清晰、更加流畅。

InfoQ:由于随着硬件设备和带宽质量的提高,用户对视频的分辨率的要求,故现在的编码器,更倾向于支持高分辨率,那对于未来,腾讯的编解码器会更倾向于解决用户的哪个痛点?或者说编解码打算往哪个技术方向发展呢?

视频编码器本身都是可以支持不同分辨率的,用什么分辨率属于编码器应用策略的问题,关于视频编解码器技术本身,腾讯的视频编解码器关注的核心其实跟标准组织、做商业编解码器的公司等是一致的,都是为了获得更高的压缩效率(即同等质量下尽量降低视频码率,或者说同等视频码率下提升视频质量),同时控制编解码的计算复杂度。当然不同应用对编解码技术的需求侧重点是不同的,比如实时视频通话有低延时、低复杂度的要求,而视频文件的离线存储应用更关心压缩效率,编码复杂度可以很高,我在12月份archsummit的分享内容里也准备了一些不同视频应用对视频技术的需求对比,到时候欢迎大家一起探讨。

InfoQ:目前微信视频通话不清晰、不流畅的问题仍然不时会出现,这是什么问题造成的?为此,你们打算通过什么技术方法解决呢?

由于微信视频通话面向数亿微信用户,网络环境、设备性能差异非常大,这些因素都会影响通话质量,“众口难调”——也是海量用户互联网视频通话应用的一大难点。因此我们在视频编解码、图像处理、传输容错等方面做了很多与网络状况、设备性能相适应的技术,为各种不同网络和设备的用户提供尽可能优质的音视频通话质量。最近几年我们针对弱网、中低端设备通话质量差的难点问题做了很多优化,可以为这部分用户提供基本质量的视频通话。虽然我们会从宏观统计数据上监控和检验每次优化效果,但是不排除小部分视频质量异常的场景,所以大家如果有发现自己的网络、设备良好的情况下,微信视频通话存在不清晰、不流畅的问题,欢迎反馈给我们,帮助我们进一步完善。

InfoQ:随着实时通信RTC技术栈快速演进,苹果宣布Safari 11对WebRTC的支持,实时了通信技术在主流浏览器端实现统一,那么微信或QQ现在是否已经使用了WebRTC组件?有这个打算吗?

我们微信这边的多媒体技术团队在音视频编解码、前后处理、传输等技术上有着十多年的技术积累,因此没有使用WebRTC。目前微信这边暂时还没有考虑过使用WebRTC,以后要看产品应用和技术发展情况再做评估。

InfoQ:您怎么看待WebRTC的技术发展前景?

WebRTC包含了一套完整的实时音视频应用的开源解决方案,之前我也了解到很多做音视频通信、直播等业务的团队可以基于WebRTC快速搭建起自己的产品应用平台,而且WebRTC中涉及的音视频格式和通讯协议等都是公开的、标准的,平台系统兼容性较好,未来也有利于不同产品的互联互通。

但是考虑到不同的业务应用场景,如果要把音视频服务做得更好,比如从80分到90分,甚至100分,应用方还是需要做很多针对性的优化来提升性能和产品体验。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注