默认
打赏 发表评论 1
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
微信多媒体团队访谈:音视频开发的学习、微信的音视频技术和挑战等
阅读(73892) | 评论(1 收藏1 淘帖2
微信扫一扫关注!

1、内容概述


腾讯多媒体内核中心高级研究员时永方接受了LiveVideoStack的邮件采访,谈及了个人成长中的关键时刻,学习多媒体开发的三点核心,以及在5G和高清时代下,微信多媒体团队面临的挑战。

2、相关文章


微信团队分享:视频图像的超分辨率技术原理和应用场景
微信团队分享:微信每日亿次实时音视频聊天背后的技术解密

Q:时永方你好,能否简要介绍下自己,包括目前的主要工作及关注领域?


时永方:我是来自腾讯微信多媒体内核中心的时永方,本科毕业于南京大学,研究生毕业于香港科技大学MTREC实验室,研究生毕业之后加入微信,从事微信视频通话的相关技术研发,目前的工作主要在提升微信视频通话的QoS/QoE(Quality of Experience),包括清晰度、流畅度提升,流量控制,抗丢包策略,多编码器协同编码等,近期也有关注运用深度学习方法进行在视频、图片主观质量的提升。

Q:是哪些原因或机缘巧合让你选择腾讯,并专注在多媒体技术?


时永方:我进腾讯应该说是一个巧合,当时我在香港科大还有一年MPhil毕业,还在准备ICME会议的paper,没有全力找工作。我的一个博士师兄去微信面试了,当时是小龙给他面试的,小龙给他展示了刚推出不久的微信音视频通话功能(2012年微信4.2版本)。我通过师兄得知微信在招视频编解码相关的人才,在体验过微信清爽的视频聊天之后有些心动。师兄拿到了offer,但最终因为个人原因去了美国高通,我“捡漏”通过师兄投递了简历,很幸运通过了面试来到了微信事业群的前身广州研发部。

Q:多媒体技术涉及许多基础科学,需要足够的耐心潜心研究,初学者入门不易。您对此有哪些体会或经验分享?


时永方:多媒体技术确实涉及很多基础学科,如高等数学,数字信号处理,通信原理,信息论等。

通过我本人的学习经历,有三点建议:

  • 第一,初学者需要掌握数字信号处理及信息论等基本知识,这些知识是我们进入这个行业的敲门砖;
  • 第二,需要了解技术的演进过程以及解决的“痛点”。具体到视频编解码上,我建议初学者需要了解视频编码标准的演进过程,从早期的H .261/263,MPEG1/2/4,到现在的H.264/H.265/H.266,熟悉每一项标准的差异点,以及在技术进步过程中想解决的问题,这样不仅知其然还能知其所以然;
  • 第三,最后一点,知行合一!通过对各标准的测试模型或开源软件的代码阅读,加深对技术细节的理解,通过部分模块的优化,提高自身的实践能力。如果能做到这三点,恭喜你就已经是内行人了。

[H2Head]Q:能否推荐一些学习多媒体开发的书籍或资料?[/H2]
时永方:基础知识方面推荐岗萨雷斯的《数字信号处理》,东南大学的《信息论与编码》,编码基础方面推荐Wiley的《THE H.264 ADVANCED VIDEO COMPRESSION STANDARD》或国内毕厚杰老师的《新一代视频压缩编码标准H.264》,最新的标准可以看相关的标准文档。

Q:过去这五年是微信经历了快速发展,能否介绍下你所做的对微信音视频的优化与改进?


时永方:过去五年,微信取得了高速发展,成为一款“国民APP”,我所在的微信多媒体中心的音视频通话业务也取得了极大的发展。

我的优化工作主要在微信视频通话的QoE提升上,主要分以下几个方面。

1)“三高”(高帧率、高分辨率、高质量)优化:

高帧率、高分辨率优化简单来说就是提高视频通话的帧率和分辨率。为了解决各终端性能的“长尾”效应,我们对各终端的性能进行统一评估,根据不同的能力来决定其最高编码帧率和分辨率。另外,针对软编码的性能瓶颈(速度、发热),我们对高分辨率视频的编码采用硬件加速,以此提高视频通话的高清体验。为了提高视频的主观质量,我们还做了编码器的压缩效率和视觉质量优化,减轻低码率时的块效应。

2)流量控制优化:

为了能尽可能准确描述信道的状态,除了一般流控系统里用到的丢包和延时参数外,我们还估计端到端的可用带宽,根据这些信息来综合调节,减少超带宽的概率。

3)弱网优化:

在流畅度保证方面,除了传统的加FEC冗余数据包保护外,我们还进行了多方面的优化: 我们改进了编码器的参考帧结构,降低某帧丢失导致的误差传播概率,我们还优化了FEC冗余数据包保护策略,将冗余数据包优先分配给重要的帧;对于高丢包但RTT较低的网络,我们会提前判断是否需要I帧请求,降低卡顿时长。

Q:随着手机更新换代,硬件性能不断提升,对于微信音视频的QoS/QoE是不是更容易保障了?在网络条件不断改进,终端硬件性能提升的情况下,对底层技术的研发是不是不再重要呢?


时永方:硬件性能的提升,确实有助于我们提高微信视频的QoS/QoE,只有硬件性能足够,我们才有可能进行更复杂、更高效率的视频编码,提升分辨率,用复杂度trade-off一些压缩效率上的提升。但其实,从整个系统来看,硬件终端只是整个VOIP端到端系统里起点和终点,我们面临最大的不确定性在网络途中。我们的IP网络是一个best-effort的数据网络,是一个大黑盒,突发丢包、随机丢包、抖动这些未知因素会极大地影响我们的视频通话体验,QoS/QoE保障仍然是一个艰巨的任务。

底层技术研发的重要性是不言而喻的,我们对技术的极致追求也是持续的。我们都知道,网络再好也有“抽风”的时候,手机再强但仍有用户使用较差的手机。对微信团队而言,我们有强烈的用户导向,我们重视每一个用户的反馈,重视每一个异常的场景。如果说现在的微信视频通话已经解决了80%场景下的QoS/QoE问题,剩下的20%仍需要我们不断地一点点打磨、优化。
[H2]Q:接下来微信多媒体服务的挑战还有哪些?改进和研发重点方向是什么?
时永方:随着业务的扩大,我们的带宽成本在不断地提升,为了控制成本,同时又能保证用户的视频质量体验,我们还要不断地提升我们编码器的编码效率,优化视频的主观质量;随着腾讯“连接一切”战略的深入,可以预见,以后将会有各式各样的设备接入微信的多媒体服务,如何给众多异构设备提供高标准的服务,无论对我们的WAVE引擎(Wechat Audio & Video Engine)还是后台,都有相当的挑战。为此,我们不仅要提高WAVE引擎的通用性,还要提升后台的处理能力和稳定性。

Q:能否介绍下在微信上的软/硬件协同编码,以及多Codec协同的业务场景和实践?


时永方:上面也提到了,我们在视频通话上根据不同分辨率、不同的网络特点、设备性能选择合适的软/硬件编码器协同工作。简要来说,在网络较差、分辨率较低时,我们采用自研软件编码器,具有更强的传输适应性,在较差网络中降低卡顿;在网络较好、硬件编码性能良好的设备上进行高分辨率视频编码时,我们采用硬件编码器编码,可以降低高清视频编码的延时以及减少手机的发热。

Q:在5G、4K时代到来之后,对多媒体技术带来哪些挑战?对于开发而言,有哪些机遇?


时永方:5G、4K高清时代的到来会对我们带来很多挑战。

首先:最直观的是,视频类业务量的激增和用户对视频质量的要求不断提高,对我们而言意味着视频带宽成本更大,因此,我们需要提高压缩效率;

第二:对于移动设备而言,运算更加复杂更加耗时,因此我们要优化编解码器,提高编解码速度;

第三:可以预见,路越修越宽,车越开越多,网络拥塞状态并不一定会随着5G的使用而彻底好转,不确定性仍然很多,我们的流控响应的动态范围还要继续扩大以适应新的网络特性。

新的时代孕育新的机会,我们期待在5G、4K到来时展现我们的硬实力,包括编解码器压缩效率、速度,智能流控等。

Q:在今年的CVPR大会上,看到中国来自国内的AI相关的企业。参与此次CVPR,你是听众身份参会吗,还是有其他任务?参与大会观察到哪些现象,有何体会?


时永方:我主要是去学习最新的学术成果,了解最新的工业界关注方向。这次参会,我看到自动驾驶、AI医疗很火热,很多国内国外的大公司都有相应的人工智能实验室,在顶会上吸引顶尖的学生、研究人员。

我印象最深的是,AI教主——NVIDIA CEO黄仁勋亲自赶到会场,和众多使用NVIDIA芯片研究自动驾驶、AI医疗解决方案的小创企业交流,了解他们的实际需求以及业务发展状况。

另外,大会的一个tutorial中提到,一个PhD学生用深度学习只花了1周时间就可以媲美资深天体物理学家几十年搜索到的宇宙暗物质。对我们多媒体技术而言,如果能借助人工智能提升我们在QoE提升方面的一些主观的、人为的决策也是极好的。

附录1:更多微信、QQ团队技术分享


微信朋友圈千亿访问量背后的技术挑战和实践总结
腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)
腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(音视频技术篇)
微信团队分享:微信移动端的全文检索多音字问题解决方案
腾讯技术分享:Android版手机QQ的缓存监控与优化实践
微信团队分享:iOS版微信的高性能通用key-value组件技术实践
微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?
腾讯技术分享:Android手Q的线程死锁监控系统技术实践
微信团队原创分享:iOS版微信的内存监控系统技术实践
让互联网更快:新一代QUIC协议在腾讯的技术实践分享
iOS后台唤醒实战:微信收款到账语音提醒技术总结
腾讯技术分享:社交网络图片的带宽压缩技术演进之路
微信团队分享:视频图像的超分辨率技术原理和应用场景
微信团队分享:微信每日亿次实时音视频聊天背后的技术解密
QQ音乐团队分享:Android中的图片压缩技术详解(上篇)
QQ音乐团队分享:Android中的图片压缩技术详解(下篇)
腾讯团队分享:手机QQ中的人脸识别酷炫动画效果实现详解
腾讯团队分享 :一次手Q聊天界面中图片显示bug的追踪过程分享
微信团队分享:微信Android版小视频编码填过的那些坑
微信手机端的本地数据全文检索优化之路
企业微信客户端中组织架构数据的同步更新方案优化实战
微信团队披露:微信界面卡死超级bug“15。。。。”的来龙去脉
QQ 18年:解密8亿月活的QQ后台服务接口隔离技术
月活8.89亿的超级IM微信是如何进行Android端兼容测试的
以手机QQ为例探讨移动端IM中的“轻应用”
一篇文章get微信开源移动端数据库组件WCDB的一切!
微信客户端团队负责人技术访谈:如何着手客户端性能监控和优化
微信后台基于时间序的海量数据冷热分级架构设计实践
微信团队原创分享:Android版微信的臃肿之困与模块化实践之路
微信后台团队:微信后台异步消息队列的优化升级实践分享
微信团队原创分享:微信客户端SQLite数据库损坏修复实践
腾讯原创分享(一):如何大幅提升移动网络下手机QQ的图片传输速度和成功率
腾讯原创分享(二):如何大幅压缩移动网络下APP的流量消耗(下篇)
腾讯原创分享(三):如何大幅压缩移动网络下APP的流量消耗(上篇)
微信Mars:微信内部正在使用的网络层封装库,即将开源
如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石 [源码下载]
微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解
微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)
微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)
Android版微信从300KB到30MB的技术演进(PPT讲稿) [附件下载]
微信团队原创分享:Android版微信从300KB到30MB的技术演进
微信技术总监谈架构:微信之道——大道至简(演讲全文)
微信技术总监谈架构:微信之道——大道至简(PPT讲稿) [附件下载]
如何解读《微信技术总监谈架构:微信之道——大道至简》
微信海量用户背后的后台系统存储架构(视频+PPT) [附件下载]
微信异步化改造实践:8亿月活、单机千万连接背后的后台解决方案
微信朋友圈海量技术之道PPT [附件下载]
微信对网络影响的技术试验及分析(论文全文)
一份微信后台技术架构的总结性笔记
架构之道:3个程序员成就微信朋友圈日均10亿发布量[有视频]
快速裂变:见证微信强大后台架构从0到1的演进历程(一)
快速裂变:见证微信强大后台架构从0到1的演进历程(二)
微信团队原创分享:Android内存泄漏监控和优化技巧总结
全面总结iOS版微信升级iOS9遇到的各种“坑”
微信团队原创资源混淆工具:让你的APK立减1M
微信团队原创Android资源混淆工具:AndResGuard [有源码]
Android版微信安装包“减肥”实战记录
iOS版微信安装包“减肥”实战记录
移动端IM实践:iOS版微信界面卡顿监测方案
微信“红包照片”背后的技术难题
移动端IM实践:iOS版微信小视频功能技术方案实录
移动端IM实践:Android版微信如何大幅提升交互性能(一)
移动端IM实践:Android版微信如何大幅提升交互性能(二)
移动端IM实践:实现Android版微信的智能心跳机制
移动端IM实践:WhatsApp、Line、微信的心跳策略分析
移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)
移动端IM实践:iOS版微信的多设备字体适配方案探讨
信鸽团队原创:一起走过 iOS10 上消息推送(APNS)的坑
腾讯信鸽技术分享:百亿级实时消息推送的实战经验
IPv6技术详解:基本概念、应用现状、技术实践(上篇)
IPv6技术详解:基本概念、应用现状、技术实践(下篇)
腾讯TEG团队原创:基于MySQL的分布式数据库TDSQL十年锻造经验分享
>> 更多同类文章 ……

附录2:音视频开发基础资料


即时通讯音视频开发(一):视频编解码之理论概述
即时通讯音视频开发(二):视频编解码之数字视频介绍
即时通讯音视频开发(三):视频编解码之编码基础
即时通讯音视频开发(四):视频编解码之预测技术介绍
即时通讯音视频开发(五):认识主流视频编码技术H.264
即时通讯音视频开发(六):如何开始音频编解码技术的学习
即时通讯音视频开发(七):音频基础及编码原理入门
即时通讯音视频开发(八):常见的实时语音通讯编码标准
即时通讯音视频开发(九):实时语音通讯的回音及回音消除概述
即时通讯音视频开发(十):实时语音通讯的回音消除技术详解
即时通讯音视频开发(十一):实时语音通讯丢包补偿技术详解
即时通讯音视频开发(十二):多人实时音视频聊天架构探讨
即时通讯音视频开发(十三):实时视频编码H.264的特点与优势
即时通讯音视频开发(十四):实时音视频数据传输协议介绍
即时通讯音视频开发(十五):聊聊P2P与实时音视频的应用情况
即时通讯音视频开发(十六):移动端实时音视频开发的几个建议
即时通讯音视频开发(十七):视频编码H.264、VP8的前世今生
实时语音聊天中的音频处理与编码压缩技术简述
网易视频云技术分享:音频处理与压缩技术快速入门
学习RFC3550:RTP/RTCP实时传输协议基础知识
基于RTMP数据传输协议的实时流媒体技术研究(论文全文)
声网架构师谈实时音视频云的实现难点(视频采访)
浅谈开发实时视频直播平台的技术要点
还在靠“喂喂喂”测试实时语音通话质量?本文教你科学的评测方法!
实现延迟低于500毫秒的1080P实时音视频直播的实践分享
移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡
如何用最简单的方法测试你的实时音视频方案
技术揭秘:支持百万级粉丝互动的Facebook实时视频直播
简述实时音视频聊天中端到端加密(E2EE)的工作原理
移动端实时音视频直播技术详解(一):开篇
移动端实时音视频直播技术详解(二):采集
移动端实时音视频直播技术详解(三):处理
移动端实时音视频直播技术详解(四):编码和封装
移动端实时音视频直播技术详解(五):推流和传输
移动端实时音视频直播技术详解(六):延迟优化
理论联系实际:实现一个简单地基于HTML5的实时视频直播
IM实时音视频聊天时的回声消除技术详解
浅谈实时音视频直播中直接影响用户体验的几项关键技术指标
如何优化传输机制来实现实时音视频的超低延迟?
首次披露:快手是如何做到百万观众同场看直播仍能秒开且不卡顿的?
Android直播入门实践:动手搭建一套简单的直播系统
网易云信实时视频直播在TCP数据传输层的一些优化思路
实时音视频聊天技术分享:面向不可靠网络的抗丢包编解码器
P2P技术如何将实时视频直播带宽降低75%?
专访微信视频技术负责人:微信实时视频聊天技术的演进
腾讯音视频实验室:使用AI黑科技实现超低码率的高清实时视频聊天
微信团队分享:微信每日亿次实时音视频聊天背后的技术解密
近期大热的实时直播答题系统的实现思路与技术难点分享
福利贴:最全实时音视频开发要用到的开源工程汇总
七牛云技术分享:使用QUIC协议实现实时视频直播0卡顿!
实时音视频聊天中超低延迟架构的思考与技术实践
理解实时音视频聊天中的延时问题一篇就够
实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
写给小白的实时音视频技术入门提纲
>> 更多同类文章 ……

附录3:有关开源实时音视频技术WebRTC的文章


开源实时音视频技术WebRTC的现状
简述开源实时音视频技术WebRTC的优缺点
访谈WebRTC标准之父:WebRTC的过去、现在和未来
良心分享:WebRTC 零基础开发者教程(中文)[附件下载]
WebRTC实时音视频技术的整体架构介绍
新手入门:到底什么是WebRTC服务器,以及它是如何联接通话的?
WebRTC实时音视频技术基础:基本架构和协议栈
浅谈开发实时视频直播平台的技术要点
[观点] WebRTC应该选择H.264视频编码的四大理由
基于开源WebRTC开发实时音视频靠谱吗?第3方SDK有哪些?
开源实时音视频技术WebRTC中RTP/RTCP数据传输协议的应用
简述实时音视频聊天中端到端加密(E2EE)的工作原理
实时通信RTC技术栈之:视频编解码
开源实时音视频技术WebRTC在Windows下的简明编译教程
网页端实时音视频技术WebRTC:看起来很美,但离生产应用还有多少坑要填?
了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化
>> 更多同类文章 ……

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

本帖已收录至以下技术专辑

推荐方案
评论 1
厉害了
签名: read the fucking source code
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部