1117

作为音视频通信领域的网红,webRTC近几年一直都在刷存在感。

相关数据显示,每周仅在Chrome浏览器上就会有超过15亿分钟的WebRTC音视频通话。

1118

自从webRTC诞生以来,80%的浏览器都开始支持它。有数据显示,2017年~2021年期间,WebRTC市场将以34.37%的年均复合增长率增长。

到底什么是webRTC?它能用来做什么?有什么特点?今天这篇文章,就让小保给大家做一个简单的科普。

webRTC英文全称为 Web Real-Time Communication,网页即时通信,是个支持网页浏览器实时语音、视频对话的API。

简单来讲,就是程序员在网页代码里面加入这个它,就可以在网页上实现即时音视频通话。 

一般人会问,这有什么厉害?平时互动直播、玩狼人杀、KTV都用的是这个技术吧?

1119

▲某在线抓娃娃机APP

但如果你对网络通信有了解,就不会这么想了,不仅非常厉害,webRTC还是一项划时代的创新。

为了方便大家更好理解一门技术,我们得先讲讲webRTC的前身——VoIP,也就是大家俗称的IP电话。

1120

一、神坛上的老大哥VoIP

IP地址这个概念,对于大家来说应该不太陌生,而VoIP(Voice over Internet Protocol)就是基于IP地址的一种通话技术。

这项技术最有代表性的当属Skype、QQ这类软件,只要下载客户端,你就可以和朋友语音视频通话。记得在十多年前,用QQ和朋友聊视频还是件新鲜的事情。可以说,VoIP技术奠定了音视频通信的基础。

1121

但是,VoIP有很大的局限:非标准化且使用方式繁琐。就像你要去拜访一个贵族朋友,得懂得很多礼仪规矩,你才能和他有共同话题。

当时Skype、QQ基本上都采用私有协议,我必须得下载这些厂商的客户端,才能够使用他们的音视频通话服务。

如果我的朋友用Skype,我用QQ,那么我们双方是不能相互通话的。

而且,如果你想在浏览器上面和朋友视频聊天,要么用Flash,要么得下各种各样的插件。Flash的音质和画质都很差,也存在很多漏洞,现在就连Adobe和chrome都已经准备抛弃它了。

1122

如果你要使用插件,维护成本也很高,不同浏览器还要专门开发不同版本的插件,每更新一个版本的插件,程序员就要为好多个浏览器定制,开发成本高。

2011年,webRTC带着改造旧世界的理想,降临了。

二、webRTC是如何上位的?

webRTC跟其它的VoIP协议不同,主要在于下面3个方面:

开源,免费,而之前的VoIP协议很多都要授权费;

基于浏览器,不需要装插件,只要调用就可以实现音视频互动功能;

被纳入了HTML5标准,主流浏览器全面支持

开源这一点,对创业公司来说就是救命稻草。这意味着创业公司不需要承担高昂的专利费,可以花更多预算放在提高用户体验、创新内容等方面,也推动了整个行业的发展。

因为统一了标准,对于用户来说,不用下APP和客户端,直接用浏览器、小程序就可以发起语音视频通话,非常方便。无论你的设备是iPad、PC、手机(iOS/android),都可以使用。

所以为什么课程直播、在线狼人杀、抓娃娃机、互动答题这些应用在这几年非常火热,大部分都要归功于webRTC的普及。

这套标准激活的是人与人,物与物之间信息互联,也就意味着这是全新应用场景的底层技术保障。

那么,webRTC到底是怎么实现的呢?

在开始之前,想让大家思考一个问题,2个处于不同网络环境的浏览器,要实现语音/视频通讯,难点在哪?

至少要解决下面两个问题:

1.彼此了解对方支持的媒体格式、最大分辨率等信息

比如你的朋友是美国人,他只会说英语,你给他发微信、写邮件肯定只能用英语。在网络通信之中,就是要找到大家共同的“语言”(格式)。

比如小红的浏览器支持MPEG1/2、H264等编码格式,而小刚支持MPEG4、H264。如果要保证双方能够正常视频聊天,最简单的办法就是选他们的交集H264。

1123

2.彼此要了解对方的网络情况,才可以找到一条通讯的链路

我们平时出去玩,经常会打开导航看路况和路线。在互联网世界中,要建立双方的链接,也需要找到一条双方能同行的链路。

比如小红有公网IP和192网段的内网环境,而小刚没有公网,只有192、198开头的两个内网地址。他们就可以用192网段来通信。

1124

那小红和小刚是怎么建立链接的呢?

通过一个中间商信令服务器(signal server)(但是它不赚差价)即可。

1125

大家可以看到,整个网络架构的躯干,主要还是在于信令服务器(Signaling Channel),它担任了两者之间中继站的一个角色。

1126

通过以上步骤,小红和小刚的浏览器就建立起了链接。

但实际上的传输过程会更复杂,涉及到NAT内网穿透、音视频传输、STUN/TURN/ICE协议等知识,有机会小保再给大家详细讲解。

三、谷歌爸爸与webRTC的蜜月故事

不得不说,要是没有壕气十足的谷歌爸爸,这项划时代的技术可能很难普及。

1127

2010年,谷歌用6820万美刀(折合人民币4亿8千万)收购了Global IP Solutions(GIPS)公司。次年6月公布webRTC开源项目。

谷歌的意思很明确:我买了GIPS,大家随便用,不收钱。

不得不叹服,有钱就是任性。如果谷歌爸爸如果不开源GIPS的技术,坐着收专利费,1~2年即可回本,3~5年就能躺赚几个亿,大步迈入小康社会。

10年前,QQ使用的就是GIPS的语音引擎,一般这种引擎会根据客户端数目来定价,按年结算。当时QQ的用户至少也有好几亿,按照每人1元算,一年GIPS就能收到几个亿的专利费。

谷歌爸爸放着这么多钱不赚,图个啥?有句话这么说:世界上有两种人,制定规则的人和服从规则的人,而谷歌明显是想做前者。

事实证明,谷歌爸爸的确眼光独到。靠着开源webRTC,谷歌不仅成为了技术标准的制定者之一,还纷纷获得主流浏览器厂商支持。随后,webRTC被部署到数百万的终端设备中。

时间来到了2017年11月,公布webRTC开源 6 年后,W3C WebRTC 1.0 草案正式定稿。

Chrome、Firefox、Safari、Edge 等主流浏览器都已经支持 WebRTC,浏览器之间无插件化的音视频互通已经成为一种可能。

四、webRTC面临的挑战

人无完人,webRTC在使用的过程中,多少也会出现问题:

1.传输质量难以保证。

webRTC使用的是点对点(P2P)传输,虽然可以节省中间服务器资源,但是很难保证跨国及跨运营商之间通信的质量。

(不了解P2P的小伙伴,可以看看小保之前的文章:2684亿狂欢背后,是它在让你流畅剁手

1128

虽然有优秀的点对点质量控制算法,但在错综复杂的网络环境下,表现也很难令人满意。

2.实现多人场景应用需二次开发。

webRTC是为1对1通信通信场景设计,如果要实现1对多的通信,还需要借助服务端的方案。

3.在移动端表现不佳。

这点在安卓上比较明显,如果不针对不同机型做适配,很难有统一的用户体验。

五、webRTC的未来怎么走?

未来在音视频通信领域,webRTC会成为业界主流。

1.设备兼容性更强

2017年之前,webRTC一直都缺少测试工具。就在2017年年底,谷歌就推出了KITE,帮助程序员测试不同浏览器之间的互通性。

1129

下一步会提供更完备的测试套件,不仅可以帮助开发者测试 WebRTC 应用在 Web 端、Native 端的互通性与体验,还有助于保证各厂商浏览器 WebRTC 接口功能的一致性,并逐步完善 WebRTC 缺失的功能。

2.QUIC技术逐渐起步

对于webRTC来说,QUIC可以让通信速度更快,减少卡顿,还可以替代之前的旧协议。但目前支持QUIC的浏览器只有 Chrome 和 Opera,推广普及仍需要时间。

3.应用场景更多元

2018年,音视频通信已经不仅限于社交软件的应用。webRTC普及使得教育直播、在线医疗、企业培训等垂直场景应用蓬勃发展。

1130

2018年底,谷歌宣布Project Stream,使用串流技术在Chrome上玩《刺客信条:奥德赛》。随后,webRTC团队成员转发了这个测试页面。

可以确信的是,这个项目使用了部分webRTC的技术。这意味着什么?就是我可以拿起身边的iPad、手机,就可以在网页上面玩几千元PC才可以运行的3A大作。(比如荒野大镖客2、GTA等等)

在将来,我们可以想象一下。在基于webRTC构建的世界中,所有终端建立连接的过程是统一的,只要终端之间开放了通道,就可以建立实时通信。

比如,微信与WhatsApp能建立视频通话,就像你在中国用手机,给美国朋友家里的座机打电话。甚至你还可以用微信连接到汽车的屏幕,提前放音乐、开空调。

在实时音视频通信的场景中,保利威视频云能够根据不同需求,提供一站式直播、点播解决方案,帮助企业降本增效,让视频创造价值。

保利威将继续在音视频领域不断钻研,为不同领域的客户提供创新、优质的解决方案,为行业的发展贡献自己的一份力量。

 


参考文献:

[1]严 琦,安 岗,杜杏兰,邴 建.(2015).WebRTC技术漫谈和对运营商的影响

[2]屈振华,李慧云,张海涛,龙显军.(2012).WebRTC 技术初探

[3]JackJiang2011.(2018).了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化