VIPKID 张武锋:自研RTC的故事

文 / 张武锋


策划 / LiveVideoStack


LiveVideoStack:张武锋,您好!非常开心邀请您接受LiveVideoStack的采访。能否向我们的读者简要介绍下自己,以及您目前关注的技术领域与场景?


张武锋:从2005年加入了Radvision开始,进入了实时视频通信领域,开始是为欧洲和北美的客户定制开发VoIP电话系统。那时的产品在企业专网上跑,网络比较有保障,对视频质量要求比较高,最低也要标清。


后来又开始基于3G234M开发3G视频电话,在64kbps的带宽上,传输QCIF分辨率的视频,当时被运营商寄予厚望的3G杀手级应用,因为体验差,资费贵,没几年就销声匿迹了。


2012年进入互联网领域,还是主导开发视频通信平台,发现和传统的视频会议产品相比,互联网的通信系统对技术要求完全不一样,抗弱网,终端适配,高并发成了必修课,需要全新的技术架构来应对,目前专注在教育场景下的高可靠音视频通话平台建设和音视频质量评价体系建设。


LiveVideoStack:我记得2017年我们就认识了,当时邀请您来LiveVideoStackCon分享,但是遗憾未能如愿。直到今年,您终于同意来LiveVideoStackCon2019北京 分享。两年间VIPKID从初出茅庐到行业翘楚,您和您的团队在这期间经历了哪些至暗时刻与狂喜(考验和成果)?回顾这两年,有哪些难忘的瞬间?


张武锋:我是2017年加入VIPKID的,前半年,我们团队一直在打磨自研RTC平台,开始没有关注教室业务,只是埋头优化视频通信平台,等到觉得平台可以了,想要和业务部门讨论上线的时候,发现要把新的平台接入每天并发量已经很高的旧系统,而且是应对稳定性要求超高的收费业务,路才刚刚走了一半。当时做了个Demo系统,组织了100多个同事,晚上在家里做了个内测,总体反映还可以,大家对上新系统有了一定信心。公司的不同部门的同事全力帮助开发新老系统兼容上线,做了很周密的灰度计划,紧锣密鼓的集成了1个月。因为涉及好多系统,上线那天晚上,弄到夜里1点多,发现有一个系统需要修改,但负责的同学已经回家了,被我们电话叫到公司,上线完成已经是次日凌晨6点了。


自研的RTC平台上线前,经过了3个月的测试,大家都满怀信心,预期也很高,但是上线后的数据却远低于预期,这时前期针对流媒体大数据平台,我们内部叫海豚系统,发挥了作用,因为之前的埋点比较细致,这样在用户侧发生的问题,通过海豚系统都可以分析到,问题主要集中在设备适配,和用户网络的稳定性上,那时发现问题,要求本周必需发版本解决,经常加班到夜里2、3点钟,通过了3个月的迭代,系统开始稳定,整个数据越来越好,也收到了很多业务部门和用户的正向反馈,说新系统很好用,参与平台研发的同学都感觉挺自豪的。


印象比较深的是系统上线后差不多半年的时候,发生了线上事故,导致了100多节课损失。当天晚上,我把几个骨干召集到一起,因为是第一次事故,心里面不能接受,情绪有一点儿不太好,不留情面的指出了每个人的问题,说了一些重话,还好因为在一起合作比较久,大家都虚心接受了。事后反思,应该控制好自己的情绪,自罚1000元请大家撸串。通过这件事情,团队成员更清晰的认识到在线教育平台对稳定性是有非常高的要求,对于系统上线,灰度,扩容,监控,都力求做到万无一失。 


LiveVideoStack:面对业务快速增长,产品功能不断迭代,VIPKID多媒体架构和技术栈经历了哪些迭代?


张武锋:VIPKID早期的多媒体架构技术是基于Flash的,采用RTMP协议,这套架构伴随着业务发展,做了很多优化工作,也挺稳定,它最大的好处是直接网页上课,用户使用很方便,随着业务增长也面临一些问题。


我2017年加入公司后,主导开发私有协议的多媒体平台,算是VK RTC 1.0版本,主要是想在低延时,音视频质量和并发上有所突破,能够快速扩容,满足公司飞速发展的业务需求,这个版本只实现了Native SDK,用户必须安装客户端App才能上课,上线后体验满足了要求。


VK RTC 2.0增加了对Web接入的支持,之前内部讨论的时候,我一直坚持Native体验好,不要做web端支持,最终还是被用户教育了,一些场景下用户就是喜欢用web接入,需求逼着我们升级平台,支持WebRTC的接入,我们采用桥接的方式把WebRTC的用户导入我们的私有协议平台,主要的业务流程还是自研平台,因为积累比较多,升级迭代的速度可以很快,后来交流看,几家主流的RTC厂商,也都是这种方式支持WebRTC接入的,同时也实现了多中心容灾。


目前我们正在开发的是VK RTC 3.0,主要是扩展一对多,和多对多的功能,满足大班课,超级小班课等业务支持,实时质量感知系统也会在3.0版本上线,通过实时标签,智能感知问题,并启用相应的处理策略。


质量优化是每个版本都持续迭代的,包括用户的设备适配,抗网络抖动,用户智能选点,网络节点扩展等。VIPKID自建的“星云系统”覆盖了全球35个国家的5条跨海专线,在16个国家、55个城市完成数据中心传输节点布局,能够根据实时动态在一分钟内完成智能切换。该系统由于具备“边缘节点覆盖”“多中心容灾”“异常节点自愈”等特点,可以有效解决跨洋教育中数据传输不稳定这一“顽疾”。目前我们自研的抗弱网的UDR算法,能抵抗50%的网络丢包,也做了一些横向对比,算是较好的平台之一,给我们小伙伴们鼓个掌吧。


LiveVideoStack:在LiveVideoStackCon2019北京上,您即将分享的“在线教育音视频质量评价和感知系统”,能简要介绍这个系统吗?它给研发、运营团队带来哪些帮助?


张武锋:这个系统在我们内部叫海豚系统,是希望它更聪明,更智能。海豚系统实时收集了RTC 客户端和SDK服务端的所有数据,实时生成标签,基于标签判断系统问题,粒度可以是线路级,地域级,教室级和用户级,按照既定的策略执行,主动修复问题。


我们灰课评价标准的建立花了差不多半年时间,我们持续收集用户关于上课质量的反馈和建议,通过分析,我们发现这些反馈主观性很强,有的用户容忍度很低,有的用户没有任何反馈,但是我们通过回放发现质量是有问题。所以就想有一套客观定量的标准,评价一节课的质量的好坏,并且和大多数用户的主观感受一致,经过了半年多的摸索,提出了包含视频卡顿率,视频清晰度,音频清晰度,音量大小等指标,与之相对应的系统也已经上线。这个过程积累了一些有价值的算法,比如用机器学习,训练了无参考视频质量的打分模型,教学场景下的音频清晰度打分算法等。这个系统能够指导我们的版本迭代,质量持续优化,也能监控线上是否发生了非灾难事故但是引起质量波动,这个标准也可以用来对比不同的RTC平台在教学场景下的优劣,对比是基于线上用户数据而非实验室测试。更多详细信息将在LiveVideoStackCon2019北京做分享。


LiveVideoStack:你认为,哪些技术或标准将成为在线教育场景用户体验提升的关键?


张武锋:随着在线教育的普及,人们对音视频质量的要求越来越高,在高*景下, H.265的带宽优势会体现出来。音频Codec,比较喜欢EVS,EVS如果能越过许可费用和性能两个门槛,也许会普及。SVC在一对多和多对多的教育场景下有很大的发挥余地。也很期待全息影像能在视频通信领域实用,能给人提供更真实的面对面沟通体验。


LiveVideoStack:5G呼之欲出,他对在线教育带来哪些机遇和挑战?


张武锋:5G到来以后,高带宽使得沉浸式的教学体验落地,VIPKID有一个外教带你看世界项目,5G时代可以把中国的学生投射到更逼真的学习环境当中,体验和教学主题相关公园,博物馆等场景,对英语学习效果提升会非常明显。5G以后移动接入会更普及,这样随时随地上课成为可能,选择在线教育的用户会更多,上课的频次也会增加。5G对最后一公里的带宽极大提高,相应的对骨干网络会产生很大的压力,对于老师和学生全球分布的教学场景,需要有更智能、更实时的网路资源调度能力,应对骨干网络的波动。我们持续优化星云系统的节点部署和智能调度平台,为学生和老师提供一条最优的网络通路,以达到最佳的上课体验。


感谢LiveVideoStack给音视频从业者提供了一个非常活跃的专业交流平台。

————————————————

版权声明:本文为CSDN博主「LiveVideoStack_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/90897936


「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实践技术文章,在这里与音视频领域一流工程师交流切磋。

VIPKID 张武锋:自研RTC的故事

上一篇:VMWare 网络连接模式(bridged、NAT、host-only)详解


下一篇:Cloudflare的HTTP/2优化策略