>科技>>正文

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

原标题:微信视频通话技术的演进之路

嘉宾|谷沉沉

编辑|覃云

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 分,应用方还是需要做很多针对性的优化来提升性能和产品体验。

随着移动互联网近几年发展,单个 APP 的业务越来越复杂,导致协同的工程师数量倍增,代码也越来越臃肿,代码的维护成本均呈指数型增加。为此,ArchSummit 全球架构师峰会策划了《移动开发工程化实践》专题,现已分别邀请了美团点评研究员梁士兴详解客户端架构,阿里 UC 罗彬揭秘浏览器容器化架构与大前端融合规划。目前大会9折报名,更多上百个技术案例,欢迎点击 阅读原文了解。返回搜狐,查看更多

责任编辑:

声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
阅读 ()
投诉
免费获取
今日推荐