特殊时期,音视频在短期内成为了很多人的“刚需”:在线学习、远程工作、联系亲友等众多场景下都离不开音视频技术。那么,音视频究竟是短期刚需还是未来趋势呢?本文是对腾讯云开发者社区沙龙online「技术应变力」专题的压轴采访间的分享整理,邀请到腾讯云视频通信业务总经理李郁韬、学而思网校架构师&腾讯云最具价值专家(TVP)刘连响作为嘉宾,LiveVideoStack联合创始人&主编包研作为主持人,深度剖析音视频技术发展。
引言
在 3月5日「腾讯云开发者社区沙龙online」 的采访间,LiveVideoStack主编包研作为活动的主持人,与腾讯云视频通信业务总经理李郁韬和学而思网校架构师刘连响就疫情下音视频技术的发展分别给出了自己的看法。
特殊时期期间,业务指数级暴增和大量的新业务对接让前几周的大家都过的并不轻松,就这段时间的经历,两位老师分别做了简单的总结,相信这也是大多数音视频技术人员日常工作的缩影。
刘连响提到,学而思网校从春节到现在应该可以说是各种赶节奏,需要他们对多个项目进行同步支持,功能或者模块的开发时间都被压缩的非常短,基本一到两天就要求交付。又因为是远程办公,所以处于全天工作的状态。印象比较深刻的是做小程序直播的时候,整个项目从立项到上线只花了十几个小时。
而腾讯云除了要支持连响那边一些紧急上线的新特性,还要支持很多其他行业中创新的应用,尤其一些医疗机构要短时间把业务搬到线上,很多时候都需要十几小时完成上线。还有紧急支持一些大规模并发业务的拓展,目前大家在用的腾讯视频会议就是在不断拓展和优化架构后才得以实现今天的效果。另外两位也都提到前几个月业务的增长速度、节奏以及工作强度相比往常都非常夸张。
话题一:如何看待流量的头部聚集效应?
包研:很多企业在复工后都采用远程办公的方式进行工作,但在使用视频会议平台时却出现了从未有过的卡顿,这样的问题也从侧面反映出全国人民都在使用视频会议工具进行远程办公,所以短期之内视频会议平台获得了大量的用户,但真正能转化为收益的平台可能只有像腾讯、学而思这样的头部平台才能做到,该如何看待资源向头部平台倾斜的现象?以及如何在保证用户体验的前提下做到快速上线?
李郁韬:这次疫情让大家把工作都搬到线上,在许多传统行业相当于把整个行业的线上化和数字化转型的进程向前推进了1-3年。我在其中观察到的现象是,包括学而思在内的一些在线培训机构,他们很早就开始采用云计算,将服务很早就部署在云上,也有很多技术储备,所以在面对这次疫情就可以很快地抓住机会。
但凡是之前没有大规模公有云计算部署的厂商,在面对这次疫情就很可能错过一些机会,错失这个真正面对客户增长的井喷时期,由于服务没办法及时扩张,只能选择流失掉这部分客户。相反,一些用到公有云的厂商可以利用弹性伸缩,不断地利用通用服务扩展业务,而且它的增长非常平滑,能够抵挡住每一波用户增长的冲击。能够抗下这次危机也得益于腾讯在云计算方面的资源投入,首先,短时间内的资源调配速度和能力是只有大型公有云才可以做到的。
其次是云产品标准化的程度,标准化程度越高才能做到几万台服务器一个模块的快速上架扩容,最后需要与之配套的监控、自动化压测和验证体系,这三个条件都是缺一不可的。如果将此次事件放在五六年前,我想没有任何一个厂商能够扛得住这样的冲击。和在线教育方面,之前大家预想的是在5G爆发的时候才会催发,而这次疫情所导致的催化效应是大家都没有预料到的。另外有一点我想说,这次的事件其实是把市场下沉了很多,由于远程办公以及在线教育的需求大增导致大家都会用到类似产品,这也让更多的人最起码知道了这个事情,整体的接受度变高。
刘连响:最近这两天确实可以感觉到音视频行业迎来了新一波的爆发,包括视频会议应对用户量突增等突发事件,不只需要在资源方面做储备,比如在做架构设计时肯定要考虑到业务扩展能力,工夫还是要下在平时,比如快速迭代能力,团队还是应该做一些刻意的训练,这样在真正面对需要快节奏支持的项目才不容易出问题。另外,就像李郁韬提到的整个资源要使用容易拓展的方案,这是我的想法。
话题二:视频会议应用能否长久繁荣?
包研:这次疫情带来的视频会议应用爆发式增长,到底是昙花一现,还是会长久繁荣下去?
李郁韬:从我的角度来看,这次疫情无疑加速了视频会议应用的爆发式增长,拿教育产品来说,之前我们与传统教育行业沟通云产品时会遇到一些阻力,因为传统教育机构大多都会采购很多IT硬件设备,这其实是偏私有化的小范围内部教育系统。在这次疫情之后大家都意识到,如果连学校都去不了,基础设备再先进也没用,因此他们会想在互联网上也实现一套方案,来解决平时上课遇到的问题。在没得选的情况下大家使用视频会议或直播产品,久而久之会形成使用习惯,意识到直播所带来的便利。另外,在线教育平台一定会借此机会收获大量新用户,这些新用户或多或少都会在平台留下一些资料,可能会留存下来或者去使用其他平台的云产品,无形中将在线教育的用户扩大了很多倍。
刘连响:我的观点和李郁韬很像,虽然我们都知道在疫情过后,关于线上教育和视频会议的关注度会有一定程度的回落,但大众心理的接受度应该会提高。对于我自己来说还是蛮接受视频会议这样的方式,比方说在公司开会,最头疼的是需要爬楼到会议室的楼层,还会面临等电梯和抢会议室的现象,当大家有了在线会议这个概念后,对于日后习惯的养成还是非常有帮助的。我最近看到一份关于在线教育的调研数据,其中提到疫情之后在线教育的体量将会增加5倍以上,且不论数据的真实性,但增长的事实是可以肯定的。
话题三:在线教育存在哪些技术挑战?
包研:传统教育行业如果完全搬到线上我相信还是会有些技术挑战的,尤其教育讲究覆盖全部学员,但如果使用线上产品,设备以及网络环境都会影响教学质量,这其实有悖于教育行业的初衷,对于这个问题有什么好的解决方案吗?
刘连响:首先这个问题在直播应用出现之前其实就已经存在了,我们做了很多技术优化和方案就是为了解决这些用户遇到的问题,但也需要事先讲明白,这个问题没办法依靠一个方案彻底解决,但我们有很多调优和新的技术方案可以将受影响的用户量变得更低。我最近也看到一种非纯线上的教学模式,也就是线上线下结合的方案,这样的方式在疫情结束之后可能会有更多的创新,可以在一定程度上解决某些教育行业无法做到完全线上的问题,这也是我目前比较感兴趣的方向。
李郁韬:云服务当前已经可以提供很全面的在线教育产品组合和解决方案,就像目前部分高校老师直播上课所遇到的问题一样,除了早上上课之外还需要花时间将上课的视频录下来,提供给因网络环境等问题没有及时听课的同学。如果是在腾讯云上做直播的话可以自动录制,这其实可以节省老师的工作时间,包括互动白板、在线答题和人员检测,这些功能其实腾讯的产品目前都可以实现。
网络相关问题可能更考验各家实现音视频服务的厂商,腾讯在音视频领域耕耘了这么多年已经积累了很多经验和技术能力储备,首先需要了解全国甚至全球网络接入情况,需要了解每一个用户背后网络的特点。大家常规印象里WiFi应该是网速最快的,但在我们看来WiFi的网络抖动和异常是最多的。第二,我们需要有一个全局的调度系统,能够根据网络接入情况进行实时调度。第三,网络协议的优化,要在网络抖动和时延方面做很多工作,这部分主要依靠长期的技术储备,时间越长做的肯定会越好。第四,音视频领域的增强处理,包括美颜、降噪等效果,这背后都有很多技术需要做,但大家可能感知不到。云端部分就像我刚刚提到的,线上的内容可以实时录制下来,并且有精确的时间戳对齐。
这次疫情其实是拉近了用户、在线教育平台以及云计算服务商之间的距离,让大家彼此都了解对方能够做什么样的事情,后续就是一些需求产品迭代和质量优化的过程,我相信未来一切都会变得更好。
话题四:音视频行业未来创新会在哪里?
包研:对于未来的音视频行业还会在哪些方面有所创新?
刘连响:从我个人的经验做判断,首先WebRTC已经宣传了很多年,但它还是存在着各种各样的问题,虽然它是很好的技术,但同时也带来了复杂性。一个技术不能说它好就可以去使用,而是由外在条件去决定它是否可以大规模使用,成本和技术升级都是要去评估的指标。另外,我们也在积极探索一些其他的技术,比如SRT,后续我们可能也会找一些场景进行测试,但对于技术一定需要一个时间周期。对于WebRTC今年我们会采用完全自建节点的方式,这其中我们也会和腾讯进行合作和打磨。
去年我还去关注了一些VR相关的产品,但更多还是偏向于游戏场景的应用,在教育场景的应用还是相对薄弱。由于缺少生态支持和内容生产,包括设备的普及度都是制约VR发展的因素。但我们会保持对这些技术的关注,但距离实际应用可能还有很长的一段路要走。
另外,成本是一项必须要考虑的维度,一项新技术的诞生并不意味着我们需要立即将其投入使用,而是需要综合多方维度评估考量。我们也希望WebRTC能早日降到和普通CDN一样的价格,当然这也需要一个过程,长期来看两者应该会在未来很长一段时间保持并存。
李郁韬:从腾讯的角度来讲,未来规划的技术路线还是比较清晰的,围绕音视频直播一定会有三个发展方向:更快、更便宜、更智能。
之前音视频领域有两大技术路线,一类是RTC,它主要用于满足多人会议中的低延时互动,另一类是流媒体直播/点播,他主要满足于对延时要求不大的高并发低成本场景。但技术发展到今天可以发现两个技术路线在不断地融合,做流媒体的人想用RTMP拉流的方式实现多人的连麦互动,做RTC的人不断地扩大房间的人数上限,变得越来越像直播。
但其实在这背后的技术路线,WebRTC在其中扮演着非常重要的角色,WebRTC在中国之所以能够再次发展很大一部分原因是它在2017年左右开始支持H.264的编解码,在此之后各家厂商有可能在自己的CDN上支持WebRTC,也可以在自己RTC的服务上拓展WebRTC,未来可能在CDN上可以直接用低延时的直播方式。
比如腾讯去年在业界最早推出了快直播的解决方案,那就是在CDN上构建WebRTC的协议支持,在使用CDN服务的同时可以享受更低延时的体验。在RTC部分,大家不断通过SFU的架构体系来增加观看人数,但无法避免会有H5或者Web端的用户观看,之前的做法是旁路推流到CDN,提供给Web端的用户观看,这部分的体验是很差的。如今各厂商将WebRTC融合后可以发现,两边的用户体验对齐,都可以实现低延时的观看体验。
腾讯的TRTC就是很典型的产品,把本身标准的App端native RTC协议又做了WebRTC的支持,保障用户从H5或者Web端观看可以有相同的体验,在未来这样的趋势一定会加快,未来的用户很有可能会有三套分层的体验:低延时(RTC)、中间层(WebRTC CDN)、更低延时/大并发/低成本(标准流媒体CDN),这三者组合起来可以满足大部分场景。做直播的带宽成本一定是非常贵的,比较小的厂家由于追求质量和快速上线只能采用BGP带宽,有条件的厂商可以采用三网的带宽或者单线的带宽,成本会相对低一些,但其实他们都会想采用CDN成本的体系,在未来如果WebRTC和CDN结合之后,成本可能会进一步的降低。
刚刚提到的视频会议纪要和上课点名,这些背后都可以用到AI技术,还有在直播结束之后如何能够将视频智能剪辑后上传,这也是有非常大需求的场景。腾讯还有一款产品叫腾讯云剪,我们也会围绕这个场景把更智能的剪辑方式带到视频云的服务里。
Q&A
Q:对于在线教育,由于视频量大的原因,未来会大量使用软件编码器还是硬件编码器呢?
李郁韬:在我看来,未来很长一段时间会采用软硬编解码结合的方式。我们开始去实践的时候可能会选择软件编码来更灵活的实现,但软件编码在云端可能会带来很大的技术开销,那么硬件厂商就会尝试硬件介入编码过程。未来那些对成本较为敏感的编码过程将会采用硬件解决方案,而那些成本压力较小的编码过程则继续采用软件编码,从而得到更好的效果。从这个角度来看,软件编码与硬件编码二者应该是长期并存的。
Q:疫情是一次偶然事件,并且是有时间限制的。作为腾讯这样的大平台,在疫情结束后会采用什么样的策略让人们保持对在线平台的需求?
李郁韬:我们在疫情期间对平台进行了及时有效的弹性扩容,这种扩容主要利用的是云计算中弹性伸缩的资源。疫情结束后也许腾讯会议、腾讯课堂等产品的需求会出现一定程度的下滑,我们会将多余出来的空闲服务器出售给其他需要云计算资源的公司企业,以维持这一部分算力资源的有效合理利用,而目标群体则会是那些在疫情期间需求量不是那么大的行业。
Q:请老师推荐一些音视频和直播方面的技术书籍或资料?
刘连响:Github或者刘岐/赵文杰著的《FFmpeg从入门到精通》都是不错的选择,另外多看看源码并着手实践也会对自己有很大的提升。
Q:电子白板是什么原理?有哪些行业标准和开源实现或技术栈?
刘连响:电子白板实际上有很多实践,比如基于Web端的实践很多都是基于Canavas来实现,包括绘图等功能,实际上过于复杂的场景需要根据业务对开源平台进行一些二次加工;还有一种是我们期望有更好的性能而自己研发的一套渲染库,但基于CPU的绘图其性能并不出色,所以我们基于GPU做了一套自己的解决方案;第三种是我比较看好并且也想去尝试的,如果视频的延时足够低,那么我们就可以将其作为白板——其实我们内部也去做了一些尝试,比如说把云桌面当成一个白板,只要延时足够低例如一百毫秒或者几十毫秒级别,那么即可实现白板的效果。尽管在用户网络质量不佳的情况下还是会有一些问题,但这也不失为一种方向。
Q:最近几年普通公司还有必要做直播这些技术吗?大的云厂商都在提供这些能力,公司还有必要自建平台吗?对于相关方向的程序员有什么建议?
李郁韬:我个人不建议公司自建平台,真的是没必要了。我们现在看到不管多大的平台都是在云上做直播,未来大家可以更多关注一些直播之上的业务实现,以及怎么根据直播的业务需求选择低延时、中等延时或更长延时,再根据业务场景合理分配服务资源。
Q:现在视频内容越来越多,独立的软件编码器公司有发展的机会么?还是大厂已经垄断了市场?
李郁韬:独立的软件编码公司一直都会有生存空间,为什么这么讲?纵览编解码的发展我们可以总结出规律——基本上3-5年,最多7-8年会出现一次编解码器的迭代,比如AV1之后有AV2,H.265之后有VVC乃至国家标准AV3,都处于不断发展的状态。一旦有新的编解码规范诞生,首先会经历一段时间推广期,这也是编解码器不断成熟的时间,因为刚出来的编解码器一定达不到其所宣称的编解码性能。而这一段时间也是大量的软件编解码公司集中优势力量,针对新的编解码规范在短期内实现极致优化的绝佳窗口期,并能实现非常高的性能。这些企业就是通过该途径,把优质解决方案卖给大厂商以实现自己的价值,每次迭代往复循环。所以软件编解码公司是会一直且长期存在的。
Q:腾讯云剪个人可以用么?
李郁韬:腾讯云剪(Cloud Media Editor,CME) 是腾讯云提供的云端视频剪辑服务,为媒体平台、PGC/UPGC、MCN、直播平台以及电竞内容等内容制作者和机构提供半专业级的视频处理服务,主要包含在线视频编辑、AI 智能剪辑、直播剪辑和素材库4个功能,满足内容制作者的视频编辑需求。目前腾讯云剪正处于内测阶段,很快就可以开放给个人内测使用。
Q:以后云游戏会是发展的方向吗?谷歌的平台跟国内的一些运营商都在向这个方向努力,目前制约云游戏发展的瓶颈在哪里?李郁韬:云游戏一定是未来的发展方向,可能不仅是大家传统印象里把家用主机搬到云上这么简单。在我看来,未来可能出现的更大趋势是游戏业态的颠覆革命。大家都看过电影《头号玩家》,这就是未来可期的云游戏场景。现在制约云游戏发展的更多还是成本,因为云游戏对带宽的消耗还有计算资源的消耗实在是太大了。
Q:疫情期间除了Mesh的企业小型会议,WebRTC在Mesh/MCU/SFU等架构下,大型用户依然觉得视频会议性能体验有不足。在未来5G条件下,随着接入时延、单位公里连接数、空口接入速度大幅升级外,是否能预见视频会议能比现在网络环境下有更好的提升空间?
李郁韬:网络更好、带宽更大肯定会对视频会议产生积极影响。但据我观察,现在的云视频会议厂商当中其实大部分都还是在采用SFU架构,尽量减少在云端进行视频处理,能够更快地把音视频流能够传输到用户端。中间会采用很多SVC的形式来实现扩展,能让不同网络支持不同的视频,这也是未来的一大趋势。
Q:5G时代音视频在技术上会有哪些挑战?
李郁韬:我觉得主要还是怎么去用好5G网络,因为5G网络具有高带宽、低延时的特性,过渡阶段只是高带宽但延时并不会太低。我们需要考虑怎么去用好5G网络的特性来将音视频通信发挥到极致,包括现在的许多流控算法与策略都需要做出调整,从而更极致地去利用带宽;第二点是,由于5G的频谱问题,未来信号源与基站的切换会更频繁,我想这也是未来亟需优化的一项重点命题。
Q:音视频技术的除了应用在教育、直播这些常用场景,几位老师认为还有哪些场景会成为未来趋势的?
刘连响:直播会与很多行业很多产品进行结合,例如疫情期间的快直播,全网围观火神山医院建设等。
李郁韬:还有就是远程医疗,从这次疫情我们就可以体会到这是一个非常刚需的场景,包括很多在线医疗机构与教育机构其实也在用腾讯云来构建疫情期间的心理辅导,能够在疫情期间解决很多人的心理疾病,这是我们这段时间做的比较多的一件事情。除此之外还有在线问诊,复工之后很多线下医疗机构的医生没有办法在线下有效响应患者,那么就可以通过线上问诊这样的小程序来满足医生远程问诊需求。当然,还有一类是金融。金融行业是比较典型的,例如这次金融行业复工之后你会发现包括基金、银行还有保险在内的各类金融机构都把培训搬到线上了,同时腾讯也即将推出针对金融面签、双录的音视频解决方案,使得疫情期间,消费者不需要去银行即可办理三类户的开户或其它一些需要面签的业务,这里还有非常多的可能性。一些政府机关也可以通过线上办事简化流程避免线下人员流动,例如市民可通过小程序轻松办理政务事宜,可以说这些场景的前景十分广阔。
刘连响:我稍微补充一下,其实视频就是一个操作界面,那么未来云电脑就是一个操作实时传输的视频内容。我们将该应用向外拓展,可以开发一系列企业级应用,通过本地传输信令,服务端把信息渲染并在远端呈现出来,就可实现不带电脑远程操作计算机,实现编程等高级电脑操作。
Q:我最近在调研WebRTC的情况,在PC上的浏览器中,支持还是比较完善的。但是发现移动端上的浏览器支持情况非常不好,想请教一下老师,对未来移动端上的WebRTC的前景怎么看?
刘连响:WebRTC在移动端的确存在浏览器支持情况不好的现象,在 Android端尤其明显,因为每个厂商所使用的定制浏览器可能都不一样,包括也有对H.264支持不好的问题。我觉得这还是需要整个行业的推动,现在整个移动端的浏览器可能没有做太多针对WebRTC的兼容,这也需要等待整个生态足够完善之后才会去做一些优化;另外,相对于浏览器,移动端也可以通过像小程序这样的平台,基于WebRTC模式来实现实时互动,所以生态的建设是前提条件。
Q:音视频如何偏远山区有更好的体验(他们的网络条件不是很好)?如何更好的适应企业视频会议,在线授课?相比其他的系统,腾讯有哪些优劣势?
李郁韬:腾讯的优势可能还是产品普及度比较高,因为现在消费者基本都会用到腾讯的产品。其实大部分偏远山区的网络没有想象的那么差,运营商会给一些偏远地区单独建造移动基站,我们发现偏远山区的在线教育用户,其中绝大部分都使用手机或平板等移动终端设备,我们需要做的是尽可能将产品服务做的足够轻量化,以求尽可能覆盖到这些条件欠缺的用户。
Q:公司内自有RTC的系统,如果想在微信小程序中使用TRTC和公司自有RTC互通,请问如何实现?
李郁韬:如果这是一套标准的WebRTC系统,那么你可以通过简单的转码实现互通,但如果这是完全自研则无法实现。微信小程序支持标准RTMP推拉流,你可以尝试通过转码把WebRTC与RTMP进行协议转换,即可实现互通。
Q:WebRTC使用起来是很方便,但是如果想真正的深入如何入手?WebRTC在手机端的应用,如何能做到类似于AirPlay的效果?
刘连响:如果只是简单调用API难度不大,但如果想实现大规模产品化确实有一个不小的门槛。我们会不断熟悉WebRTC的源码并不断尝试,按照我们的期待性能与结果进行调优。比如前期你可以尝试优化上层或从应用层来解决一些自定义等问题;还有一种方案就是从硬件上来解决,这需要你对系统有足够多的了解,并尝试向更底层作出一些适配,包括一些预测算法、网络丢包补偿、与服务端建立交互、处理NACK、平衡抗丢包性能、模块化等等。WebRTC的代码仓库非常庞大,可能确实需要你花不少时间学习,不光是一些音视频相关知识,也可能需要一些偏数学或算法的东西,我觉得这是一个分层级循序渐进且根据业务不断调优的过程。
在之前的黑客马拉松上我们曾尝试过类似的命题,使用WebRTC还是没有办法与Airplay完全对等,因为二者的实现机制不一样。Airplay是一个系统级别的东西,而WebRTC则可通过内网实现远端投屏,二者不是同一类技术,但是可以实现类似的效果。
Q:大神怎么看现有浏览器对WebRTC的适配?
刘连响:随着Chrome的市场份额越来越高,WebRTC的适配也越来越广泛,开发者适配的压力也越来越小,而不同版本Chrome适配WebRTC时也会存在一些不同。官方提供了适配方案,而开发者需要了解不同版本浏览器,包括SDP等在内的差异点,这也需要一个循序渐进的过程,似乎没有什么捷径。
Q:请问,低时延大班课未来是否发展会比小班课更大,更有空间?
刘连响:低时延的大班课已经成为市场趋势。比如头部机构其实更多的还是采用大班模式,这种商业模式已经被检验是成立的。
Q:视频卡顿和延时这方面除了NACK,FEC之外还有其他什么方式吗
刘连响:其实卡顿不止有NACK与FEC,举个简单的例子,我们遇到在WebRTC中判断码率比较低从而降低帧率,如果降帧率比较激进那么就会造成卡顿,实际上此时完全可以通过一些参数上的调优来改善。我们认为WebRTC中的一些算法过于激进,在一些特殊情况下会将帧率一下降低到几帧,就会使得画面出现卡顿。除此之外,还有SVC和带宽探测等技术都可以进行调优。
而在播放端我们更多是针对缓存进行调优,也就是用延迟来换取更加流畅的视频播放体验。不一定只限于NACK或FEC之上。NACK已经足够优秀而FEC则有利有弊,如果FEC没有用好则会造成带宽的占用,反而让情况更糟糕。
Q:在测试直播在各种场景的性能和调优的时候有什么好的工具推荐?
刘连响:测试直播在各种场景的性能主要通过进行一些压测,调优则主要借助火焰图等开源工具,知道CPU的瓶颈在哪里。同时在测试网络时我们也使用了网损仪,因为每个平台一些模拟抗丢包工具并不是那么准确,有时候可能会产生一些误差。在RTMP中会有一些统一的工具,但WebRTC确实现在还没有一个统一的压测工具,更多还是根据信令符写代码。
Q:腾讯小程序怎样嵌入自建WebRTC应用?
李郁韬:微信小程序现在还不支持嵌入自建WebRTC,微信小程序已经支持了实时音视频,可以直接使用。未来有可能依赖微信的浏览器内核在微信内嵌的H5上支持WebRTC。未来我们将主要解决WebRTC的一些兼容性问题,届时用户会有两个选择,一个是小程序的音视频,另一个是H5的音视频。
关注腾讯云开发者社区公众号,回复“技术沙龙”,获取更多沙龙学习资料~