写点什么

专访腾讯音视频实验室刘晓宇:服务 8 亿 QQ 用户的音视频通讯技术如何用到直播中(一)

2020 年 2 月 04 日

专访腾讯音视频实验室刘晓宇:服务8亿QQ用户的音视频通讯技术如何用到直播中(一)

1999 年,当时还叫 OICQ 的聊天软件发布了一个新版本,语音通话功能被正式加入,随后,视频通话也被加入。18 年后的今天,QQ 的月活跃用户已经超过 8 亿,一个更惊人的数字是,最多的时候,QQ 用户每天的音视频通话时长达 12 亿分钟。


在 QQ 发展过程中,其背后的音视频通信技术也经历了对外采购,到成立 QQ 音视频技术中心,自研引擎,再发展壮大为腾讯音视频实验室,开放自研的 SPEAR 音视频引擎的过程。现在,随着全民直播时代的到来,腾讯又研发并开放了一体化的直播解决方案,并将腾讯直播 SDK 应用于斗鱼、虎牙、快手等顶级的直播平台。这背后,技术、经验上的不断进步和积累,也有腾讯对中国复杂的网络状况的智能处理。


日前,腾讯音视频实验室负责人刘晓宇接受了雷锋网的采访,聊了聊这些问题,并向我们介绍了精细化运营及 5G 技术来临之际,直播会有哪些更新鲜的玩法。



(腾讯音视频实验室负责人刘晓宇)


腾讯音视频实验室:从无到有,再到支持每天 12 亿分钟通话

遥远的斯坦福校园内,一位机器学习教授上课的场景被高清摄像机捕捉的画面,通过编码器压缩,以分段发送的方式,通过互联网传输到你的电脑上,再由播放器进行实时解压缩处理,你就能学习到最前沿的课程。


流媒体技术给互联网带来了无限的活力,而当场景变成音视频通讯时,背后的技术就不止复杂了一倍。除了双向的反馈,实时通讯对延迟的要求也变得非常高;另外,回声处理也成了新的问题,“我听到你的声音出来了,我也要说话,这个过程中麦克风是一直开着的,假如不处理回声,你的声音会被再次采集进去,播到你那边。”


在腾讯大厦的腾讯音视频实验室内,刘晓宇向雷锋网做了一个小科普。2005 年,他加入腾讯,负责 QQ 应用层的架构设计,“除了底层的公共组件,好友面板、消息窗口,包括空间、音乐、邮箱等插件化功能,可以理解为你能看到的 QQ 界面展示出的东西,都是我们开发的。”


2011 年,腾讯正式成立了音视频中心,刘晓宇被任命为负责人。尽管 QQ 在 1999 年就有了音视频通话功能,但很长一段时间,腾讯都依靠腾讯研究院和第三方技术提供商,没有独立的团队负责音视频通讯。


成立音视频中心,是因为腾讯觉得音视频会是未来的一个爆发点,还有一个重要原因,当时采购自 GIPS(后被 Google 收购)的技术方案,是一个“黑盒子”,出现问题时自己无法找出原因,GIPS 又不够重视,这坚定了腾讯技术自研的决心。


刘晓宇介绍,在音视频通讯中,网络问题一直是一个技术难点。检测网络带宽,以平衡视频质量和传输速度的带宽探测,处理丢包、抖动,都需要很深的技术积累。另外,随着移动互联网的发展,设备碎片化越来越严重,适配不同的设备又成了巨大的问题,“我们经常要适配系统的问题,有时候会出现很戏剧化的事情。”有一个版本的 QQ,腾讯特意为适配不好的小米手机做了优化,但版本还没发布,小米就发现了问题,自己率先做了优化。互相适应,结果又有问题了。



(为了测试 QQ 在不同网络中的音视频通话质量,腾讯音视频实验室拉了 10 多条和用户真实情况一样的宽带,涵盖各个运营商、教育网等)


音视频中心的发展壮大,推动了 QQ 音视频通话功能的不断革新。现在,QQ 用户每天的音视频通话时长达 12 亿分钟。2015 年 11 月,腾讯正式开放自研的 SPEAR 音视频引擎,将包括流控策略控制云端化、通道智能化/多通道备份机制、分布式混音和云混音、跨平台通信协议设计、提供跨平台客户端引擎 SDK、预连接设计、双人/多人通话平滑切换、通话客观质量评测体系等特性带给更多的开发者。


2016 年,腾讯音视频实验室正式成立,最初成立时只有 7 个人的音视频中心,如今已有 80 多人。除了继续保障 QQ 的音视频通话,将它的能力开放出来,在企业级市场上有所作为,也成了音视频实验室的新任务。


本文转载自腾讯多媒体实验室公众号。


原文链接:https://mp.weixin.qq.com/s/HF91VmjxjWumOvCp4jBj0g


2020 年 2 月 04 日 20:361108

评论

发布
暂无评论
发现更多内容

架构入门感悟之十一

莫问

交报告 | 2020年读完的50本书

浪亦有道

IPFS矿机软件系统开发|IPFS矿机APP开发

开發I852946OIIO

系统开发

「架构师训练营 4 期」 第一周 - 001002

凯迪

上地七街

潇潇雨歇

微信气质

池建强

微信

【计算机内功修炼】一:看完这篇还不懂线程与线程池你来打我

码农的荒岛求生

高并发 线程池 进程 高性能 线程’

数字版权资源价值日益凸显

CECBC区块链专委会

版权保护

2021你好 | 一名五道口程序员的年终总结

herongwei

程序员 职场 自媒体 年终总结 新年

架构师训练营第十一周笔记

李日盛

笔记

一次线上cpu过高问题

kcnf

现成花火交易所系统软件APP开发案例

开發I852946OIIO

系统开发

2020年Python文章盘点,我选出了个人TOP10

Python猫

Python 学习 编程 技术

想法

BerryMew

RocketMQ避坑指南:你部署的RocketMQ集群真的是高可用?

公众号『中间件兴趣圈』

架构 RocketMQ 故障分析 消息队列

从考研失败到最具成长力员工,这个2020就像过山车一样

Java鱼仔

程序员 面试 程序人生 考研

探讨典型互联网系统使用的技术方案

andy

区块链游戏开发注意事项

CECBC区块链专委会

区块链 区块链游戏

架构师大作业

_

大作业 架构师训练营第 1 期

时间戳——区块链不可篡改特性的重中之重

CECBC区块链专委会

区块链

架构师训练营—大作业(二)

Geek_shu1988

「架构师训练营 4 期」 第一周 - 1001

凯迪

架构师训练营—第十三周作业

Geek_shu1988

【计算机内功修炼】二:读取文件时,程序经历了什么

码农的荒岛求生

后端 文件 操作系统 进程 线程’

架构师训练营—大作业(一)

Geek_shu1988

第一周架构方法-练习-食堂就餐卡系统设计

潘涛

架构师训练营 4 期

意想不到,这个神奇的bug让我加班到深夜

码农的荒岛求生

bug修复

在 Emit 代码中如何await一个异步方法

八苦-瞿昙

架构师训练营—第十三周学习总结

Geek_shu1988

架构师训练营- 食堂就餐卡系统设计

Geek_d7f0e4

架构师训练营第十一周作业

李日盛

微服务架构下如何保证事务的一致性

微服务架构下如何保证事务的一致性

专访腾讯音视频实验室刘晓宇:服务8亿QQ用户的音视频通讯技术如何用到直播中(一)-InfoQ