历经6年长跑,WebRTC终于在去年迎来了1.0标准(candidate recommendation)的发布,而它也将成为2018年视频通信商业应用场景爆发的主要技术推动力。一站式WebRTC通信技术提供商Zealcomm公司创始人、CEO冯昶对WebRTC在国内外发展历程、行业趋势、技术难点和未来发展做了详细的分析。本文是『WebRTC-互联网音视频新标准?』系列的第三篇,如果您对WebRTC技术的未来有分析和洞见,欢迎联系 contribute@livevideostack.com。
文 / 冯昶
策划 / LiveVideoStack
2018年有可能成为是WebRTC 大规模商用的元年。WebRTC 从谷歌2011年开源到1.0标准落地花了六年多时间 ,中间经过了一个典型的新技术早期起跑(technology trigger)— 热炒 (peak of inflated expectation) — 失落 (trough of disillusionment) — 趋于实用 (slope of enlightenment) 的发展过程。2017年是一个转折点,2018年我们会看到视频通信商业应用场景的大爆发,而WebRTC将成为主要的技术推动力。
WebRTC的前世今生
2011年5月谷歌发布了一个浏览器内嵌的实时音视频通信工具的开源项目,它的核心音视频技术来自谷歌此前收购的两家公司:一家是瑞典VOIP技术公司GIPS,另一家是免版权(royalty free)的美国视频编解码器技术公司ON2,这就是WebRTC 的开始。通常我们所讲的WebRTC标准其实由两部分组成:一个是其核心的流媒体协议栈规范,这个工作是由IETF的RTCWEB Working Group在做;另一个是浏览器API的标准化,这个是由W3C来做。
WebRTC 到目前的发展过程大致可分为4个阶段。第一阶段是从2011年发布到2012年,这个阶段从开始一些工程师对这项新技术的好奇,到geek 圈开始动手做一些好玩的试验项目,WebRTC在很多领域、特别是音视频通信技术界得到的关注迅速升温。第二阶段是2013-2014年的hype期,大家讨论的话题都是WebRTC的颠覆性,在这段时期也出现了不少关于WebRTC的行业会议并且出席率都不错,而很多WebRTC的创业公司也在这个阶段成立。第三阶段是2015-2016年,这个阶段很有意思,一方面我们看到行业巨头们开始进场,比如WhatsApp和Facebook messenger都开始使用WebRTC 作为核心的音视频通信技术;另一方面大多数WebRTC初创公司在商业模式上陷入了困境,其中的原因基本可以总结为两点:一是技术本身商业化还不够成熟,二是市场条件还没到位。
2017 年,我认为是WebRTC作为可商业化技术的里程碑。这主要是源于这一年发生的几件事:一是在11月发布了WebRTC 1.0的标准(candidate recommendation),亲自动手跟过WebRTC的开发者都会有这种体会——谷歌每一版Chrome的发布都需要马上修改自己的code,这其实是一件比较痛苦的事情。二是苹果宣布了对WebRTC的支持,至此也完成对WebRTC 的全平台支持覆盖。三是AOM (Alliance for Open Media) 的完善,随着FB 和 Apple (2018)的加入,AOM已涵盖基本所有互联网高科技领军企业,而AOM从设计上就支持RTC的应用场景, 保证了WebRTC和媒体编解码技术的同步进展。
WebRTC,在国内
国内对WebRTC 的兴趣应该是从2015年开始有比较快的发展。目前开发者大致分为几个层次:最初级的是开发者使用开源代码(客户端)很方便的搭一个P2P的方案,这个基本是没有商用价值的。往上一层则是一些解决方案会加入服务器端功能,来协调多路流的传输和提高稳定性,在这个层面作为一个技术解决方案是可以的,团队的音视频技术积累决定了通话质量和稳定性的好坏,毕竟1-1好做,越多点则难度也会越大,那么媒体服务器就成为其中的关键技术,如果走公网,在网络传输层就需要有很多的实战经验。再往上则是一个平台的产品形态,它需要支持包括管理、分析、API等等的功能,并且在整个平台及网络的设计和运维上达到所谓的运营商级别,这就包括高可用性、可管理性、弹性扩容、安全性等等,而平台功能的高可定制性和支持私有化部署也是相当大的需求。最上层在我看来是生态圈的层面,也就是如何在实时视频的流量上形成一个开放的商业环境,当然这需要一个基于WebRTC的开放的平台作为基础。
WebRTC最佳行业实践
有人统计过在去年年初一共有超过1000个WebRTC项目,再往前的就很难统计,主要因为会嵌入在各个应用场景中。但其实现在已经很少能听到大家专门提到WebRTC,因为如果业务场景有音视频通信的需要时,它基本已经成为默认的解决方案。在视频客服、远程医疗、远程控制等各垂直领域都有比较成熟的解决方案和一些专注的创业公司在开拓。而关注点也已经不再是音视频通信的本身,而是在已经具备音视频通信能力的基础上如何提供高度场景化的客户体验。
那么在WebRTC 解决了互联网音视频通信的技术门槛问题后,有哪些行业能最大或者最快地体现它带来的市场价值。目前可以看到的是,国内的互联网尤其是移动互联网上基于视频互动的各种泛娱乐应用创新层出不穷,并且我相信这一领域还会继续有令人耳目一新的实践应用涌现出来。此外,我个人更偏向关注视频通信在商用场景里的发展,这里除了通常提到的在线教育、在线医疗都还有非常大的想象空间外,企业信息和业务流程的智能视频化是一个趋势,我也非常期待在这些领域看到不断出现好的创新。
特别一提的是,在教育领域WebRTC目前的应用场景其实是很直白的,特别是在线教育和网上虚拟课堂都是典型的强交互性场景,也有不少方案供应商在做专门针对教育领域的通用、专用解决方案。即便如此整个教育行业机会依旧还很大,根本原因是教育资源的空间分布的极度不均衡,它需要有一些技术手段和解决方案消除掉这种“空间障碍”,而WebRTC因其开放性和标准性,是不二的技术选择。可以预见的是,未来随着一些基本通信问题的解决,随之而来的必然是用户体验需求的提升——更高的视频分辨率、更低的端到端延时以及更生动的视频画面呈现就变得更急迫,我相信VR/AR与WebRTC结合的机会、以及基于人工智能的多媒体呈现体验改进将会是行业的热点和突破点。
WebRTC与Codec
WebRTC在对主流编解码的支持上还并不是很好,尤其对于H.265的支持,这里其实牵涉到两个问题。一个是传统的主流视频编解码器大多是针对比较固定的应用场景设计并优化的,应用于码率、帧率、甚至分辨率可根据网络状况实时自适应的RTC应用场景不是很匹配;反观VP8、VP9,包括新一代的AV1编解码器都是在设计上就把RTC 的应用场景考虑在内了。
第二点是版权费的问题。WebRTC的宗旨就是开放和透明,为最大限度地推广这个技术,终端用户必须不被昂贵的编解码版权费所限制。还记得当年谷歌花了很大力气解决了VP8 的版权问题,其目的也是为了除去这个障碍,而我们也看到了MPEGLA很快就宣布H.264(Baseline Profile)免费使用,思科和微软Edge浏览器也宣布了对H.264的支持,其实从某种意义上来说,WebRTC最终还是完成了实际意义上对H.264的支持。对于H.265,我猜想基于VP9和AV1的压力,它有可能会开放免费使用,最起码是在一些限定的应用场景,这其中很有可能就包括WebRTC。对于大家比较期待的AV1而言,目前包括谷歌、微软、英特尔等众多主流厂商参与制定的bitstream格式基本已经完成,因此很可能会在2018年集成到WebRTC中来。
WebRTC与QUIC
QUIC(Quick UDP Internet Connections)协议是一种全新的基于UDP的web开发协议。相比较TCP+TLS,它具有时延低、效率高、灵活性强等优点。Google作为其主要开发和倡导者,已经在Chrome浏览器上试用多年,并取得了较好的效果。将QUIC用于实现WebRTC数据通道(data channel)是比较容易想象的,用它来做实时音视频流媒体的传输则是很有创意的想法,目前还处在可行性讨论的阶段。
从技术角度的匹配似乎很容易可以看到,需要考虑的包括:首先QUIC本身还不是一个IETF标准,其次WebRTC 标准本身的向后兼容不能被破坏,以及把控制过多曝露给上层应用是否会影响到兼容性。比较安全的做法——也是目前主流的意见,是WebRTC会将通信层做得相对独立,在保留现有的通信架构的基础上增加对QUIC的支持。
WebRTC在路上
WebRTC从最初让人激动的发布到现在1.0的落地,花费了六年的时间。在这期间,互联网通信不管是从底层技术,媒体终端,还是应用场景都有很快的发展。回头看看,WebRTC其中一些技术的选择已经显得有点保守了,比如其终端媒体能力描述的形式过度依赖于SDP协议,但反过来讲,要想能制定一个标准就不能老是变。总体而言,能将1.0 定版就是很好的一个成就。而前面也提到,WebRTC最大的成就不在于它的核心技术比其它私有的技术构架有多么了不起的优势,而是在于大大降低了提供音视频通信功能的门槛以及互通互联的开放性。对WebRTC 1.0以后的发展,业界已经开始有不少有意义的反思和建议,包括前面提到对QUIC的讨论,以及在不破坏标准兼容性的前提下如何能给开发者有更多的自由度等等。
那么在探讨它未来发展之前,我们一起看下在开发基于WebRTC的应用的过程中的主要难点,大体可以分为两个方面:客户端侧和服务器侧。客户端侧的问题主要是非浏览器环境的支持,特别是在各种Android盒子和嵌入式设备上调试其多媒体系统,由于终端形态和运行环境的差异,定制化需求比较多,往往每个典型环境的音视频pipeline和媒体优化参数都要做一遍,是比较繁杂的工作。而服务器侧的主要问题在于面对大并发量的使用场景,要有一套优雅、合理的媒体处理框架设计才能保证服务侧系统的高可连接性、可靠性和可扩展性。当然这些问题并不是所有WebRTC用户都会遇到,用户可以尽量根据自己应用场景的要求选择恰当的客户端侧和服务器侧方案,在解决特别复杂的终端环境和实用场景下的问题时,最好是利用第三方经过验证的成熟的方案,避免重复掉到别人摔过的坑里。
回到WebRTC在2018年发展趋势的话题,伴随WebRTC 1.0标准的落地,可以预见各家浏览器厂商和平台厂商未来一年会在稳定性和兼容性方面有持续改进,为开发者提供可靠的应用环境和顺滑的互操作性。同时也会进入前面所提到的最上层的发展趋势,也就是围绕WebRTC 商用的生态圈开始成形。而基于WebRTC的技术和方案提供商则将会进一步细分化、专业化,比如有专注于媒体服务器的、有提供WebRTC媒体网络平台运维监控的、有提供客户端个性化解决方案的。不过从整个行业来看,我们还只是刚刚开始而已。
WebRTCon 2018 7折报名最后一天
除了本文分享,冯昶还将在WebRTCon 2018大会上担任“测试监控和服务保障”专题出品人并做分享,曾担任全球社交类App ooVoo公司CTO,让他积累了超过10亿分钟多点高清视频通话平台经验,并拥有多项视频通信领域国际专利,在WebRTC国内外发展、技术研发难点、平台搭建以及未来趋势有着独到的见解,相信他将为我们呈现一场精彩的专题论坛,一同探讨如何提升音视频服务的保障能力,提升产品鲁棒性?
本专题我们还在积极邀请包括英特尔、阿里巴巴、爱奇艺、哒哒英语的技术大咖。更多详情扫描下图二维码或点击阅读原文。