来源@视觉中国
问题范泰吉克

WebRTC怎么了?
文言文“底”字也表示疑问,意为“他”、“什么”。正如南唐领袖李靖在调侃冯延巳时所写,“风一吹,皱一池春水,为你做了什么?”」
如果说在20世纪,人类的书写工具是笔,交流方式是寄信,那么在21世纪初,人类的书写工具变成了键盘,交流方式是电子邮件/短信/即时通讯聊天。从现在开始,在可预见的未来,手机摄像头/VR设备将是你书写和记录世界的工具,实时网络交流将是你的交流方式。视频已经成为娱乐、学习、商务会议、社交和电子商务的载体。人们逐渐没有耐心阅读书面信息。现在,甚至当他们购买一件自行安装的家具时,它都带有一个二维码。用户一扫就能打开安装指南的视频,不用再反复研究那些经常画在纸质说明书上的非常蹩脚的安装图纸。
视频不仅仅是一种展示信息的方式,它从一个部门的mov,jpeg4,wmv变成了一个播放器,再变成了一个App。然后从这种单向的“录制、上传、下载、找播放器打开播放”,变成了“直播、录播、实时观看”,再变成了视频与即时通讯工具、会议工具融为一体的双向“录播”。
电话会议已经成为今天办公室工作的标准。
传说中的“直播”终于发展到了“大众化”的阶段。Web实时通讯的全称WebRTC,就是这样一种基础技术,它推动你用一种新的“笔”,用图像代替文字进行记录和交流。
它的秘密自然在于两个部分:Web+RTC!这不是明摆着的扯淡吗?不尽然…不过先说RTC,实时网络通信。
与RTC相比,WebRTC只是网页实时通信的一个标准,它只提供基本的前端功能。我们不能简单地将WebRTC等同于RTC。
“感觉很快”是指实时?WebRTC强调“实时通信网络”。互联网已经无处不在,但它是“实时”的吗?大多数情况下不会。
首先,互联网上最重要、最基本的HTTP协议并不是为“实时”应用设计的。当您访问一个网站时,您发出一个请求,然后等待该网站的服务器将内容响应发送回您的PC或移动电话设备。虽然这种响应可能非常快,但本质上是“请求-等待-响应”。这种“等待”往往是一个不容易控制的时间变量。
电子邮件是“实时”的吗?显然不是。虽然它比传统的邮件传递快108,000倍,但它本质上是一种“存储转发”机制。互联网上的很多邮件服务器都是以中继的方式从一个A的设备发送邮件到另一个B的设备,任何一个中间环节都可能出现延迟。聊天工具是实时的吗?与电子邮件相比,它具有更“在线”的对话感觉——一条群聊消息来回传递,看似“实时”,但其技术本质仍是“存储转发”。消息接收人不在线也没关系,只要“在线”就能收到,不需要马上回复。
其实速度的感觉并不能定义真实的时间。网络的低时延和高带宽是实时的一些保证,但不等于实时。
用白话文来说,实时视频的目标就是将发生在某地A的人和事,几乎零延迟、无失真地“同步”到另一地B,让B的人瞬间看到、听到,反之亦然。人和事都是不断变化的,视频需要以“流”的方式不断推送到远端。虽然A地和B地的人相隔十万八千里,但是他们之间的网络却可以瞬间同步“视频流”,让彼此感觉近在咫尺,这就是“实时”。
现在,我们的“实时通信网络”离真正的实时还有多远?
建立一个超宇宙?追求无限的实时性
对上述问题的简单回答是,有点远。
我们对“实时”的追求是无限的。更详细的解释,我们可以拿最近很火的“超宇宙”来举例。元宇宙是一个“模拟”或“真实”的互联网。它的一个特点就是利用极其强大的实时网络,将物理世界中事物的无限细节信息化,瞬间传播给接收者,让他们通过一些特殊的设备来还原这些信息,最大程度地在原地感受事物的本来面貌。
这些信息包括什么?比如空的立体声效果,让你在一个在线会议室里也能听到说话人在哪里。在一个虚拟的社交沙龙里,你可以听到轻微的背景音乐,左边是一群人的八卦,右边吧台是调酒师的调酒声。比如可以通过远程设备渲染还原为逼真3D效果的人或物的特征数据,从街景建筑到头发、面部表情,让你在虚拟空房间里与物体或人互动,如同真实一样;如果有一天我们发明了一种可以对味觉进行采集和信息化的设备,通过刺激大脑皮层来远程还原味觉,那么这又是一种需要传输的数据。总之,我们希望将物理距离之外的一切与大脑“同步”。
如果我们现在的互联网是2D,那么超宇宙就是下一代3D互联网。你“沉浸”其中。你被包裹在实时数据中,你的眼、耳、鼻、舌、身、意都在其中。不要以为这是科幻。有些技术已经可以看得见摸得着了,比如hubhub这样简单的技术,还有谷歌Starline这样复杂花哨的技术。
感兴趣的朋友可以访问元宇宙初级读本。
在马修·鲍尔(Matthew Ball)对元宇宙的介绍中提到,实时网络是使这一代沉浸式互联网成为可能的八大核心技术之一。海量数据的极低延迟实时传输能力,目前在技术上还有点遥远。
虽然元宇宙还处于“炒作曲线”的未知点,但基于实时视频技术确实可以构建一些真正的商业应用场景。除了大家熟悉的直播、娱乐、互动,还有虚拟展览、实时教练培训、远程医疗等应用。我相信任何线下场景,只要技术允许,总有一天会产生线上模拟。
分散的沟通模式?
WebRTC的“Web”部分不是简单无意义的泛指,而是特指Web浏览器。目前这个标准和实现它的技术已经内置到主流浏览器中。理论上,任何用户都可以通过PC、Mac、iPhone、Android甚至车载系统的任何浏览器发起与对方的直接视频和语音交流。
也就是说,张三和李四,不管人在哪里,理论上只要各自有一台设备运行支持HTML5标准的浏览器,就可以不经过“中间人”的通信服务或通道,在两个浏览器之间建立直接连接,实现传说中的“点对点”视频通信和文件共享!王五、刘晨和何琪呢?欢迎加入,形成一个完全无障碍、无服务器、自组织的点对点网络。每个人的浏览器都是这个网络的节点,我们可以一起分享视频会议和文件。
感觉有点像VR Pro Max
没有中间人做差价,没有互联网平台收集所有通信方的隐私数据,个人有自己的信息安全,不依赖任何第三方。你突然觉得可以自由飞翔了吗?去中心化、点对点、点对点的网络让我们想起了互联网美好的狂野时代——BT、电驴、迅雷……美好的旧时光……

遗憾的是,就目前而言,上述情况只是一种理想,因为互联网的实际环境是复杂的。比如我们每一个上网设备的背后其实都是某个小区宽带、移动运营商网络、酒店WiFi、公司局域网等。互联网实际上是由许多大大小小的本地网络通过一系列网络设备和网络协议相互连接起来的。链路上的信息逐层传输,在最终到达之前,由不同的网络设备执行网络地址/端口“转换”转换。
深圳市南山区科技园某公司员工张如何让自己的浏览器找到并连接北京市朝阳区市民李的浏览器设备地址,从而建立点对点的直连?没有直接的办法。
现有的技术实现方案仍然是集中式的,即张和李要通过一个第三方服务“发现”对方的地址,这个服务叫做信令。
“去中心化”是第一步,暂时没有现成的技术,很可惜。
区块链+WebRTC有什么关系吗?
这方面有一些研究和探索,需要有志者进一步深入。
首先是关于技术本身的优化和扩展。例如,建议使用Kademlia来实现信令服务的去中心化。一篇IEEE研究论文讨论了如何通过区块链智能合约来提高WebRTC的安全性。
区块链能用WebRtc实现新的突破吗?
其次,在应用方面,有一个提案认为,随着疫情以来远程办公的比例越来越高,出于企业信息安全、合规、工作效率控制等原因,需要记录公司以外的各种远程办公活动,如销售、服务等。依靠现有基础设施提供者的CDR很难建立单一可信来源和追溯上下文,可以结合区块链和智能合约屏蔽WebRTC的通信记录数据,实现单一可信来源拷贝和无拷贝。
很多金融机构的服务,比如开户或者购买理财产品,都需要远程视频见证,这可能是区块链+WebRTC很好的应用场景。
WebRTC和谷歌算盘的未来
说到未来,我们得先回顾一下这项技术的历史。
2021年1月26日,W3C正式公布了1.0标准。WebRTC之前经历了整整10年的发展:2011-2014年是这项技术的探索期。主要问题是:我该不该尝试这项技术?2015-2019年是这项技术的成长期。随着所有主流浏览器都支持WebRTC,业界的问题变成了:我如何利用这种标准技术?有哪些应用场景?从2020年到现在,是这项技术应用的分化期。
WebRtc logo有典型的Google配色。
2020年的新冠肺炎疫情被认为对WebRTC技术有直接的促进作用。视频会议无处不在,Zoom已经成为一个家喻户晓的品牌。可以说,大众对云视频会议的认知度和接受度得到了前所未有的加强。
它也是W3C标准。WebRTC有没有机会成为下一代互联网的基础协议,就像HTTP对于“经典互联网”一样?要回答这个问题,你得知道WebRTC背后真正的“操盘手”。
交易者是谷歌——它不仅推动WebRTC成为互联网标准,还贡献了大部分底层开源技术。十年前谷歌这么做的动机是什么?大概有几个原因:
赌这十年的技术发展,视频编码技术、视频质量、网络带宽、计算资源都有显著发展,视频成为互联网上最重要的应用载体;当时很多企业的视频会议都是内部的,比较复杂,需要特殊设备的那种技术。随着云计算的发展,视频会议会成为云服务吗?很有可能;视频应用需要特殊的软件工具。谷歌并不控制电脑操作系统,但其Chrome浏览器已经开始击败微软和火狐,变得无处不在。浏览器内置了视频技术,给用户带来了极大的方便。视频内容和网页内容随时交织,打开就能看。可以下载什么视频播放器?最重要的一点是,谷歌在视频会议领域没有任何优势,领先的技术平台提供商也不是谷歌。所以,开个源,搅个局,没有坏处。
WebRTC标准和技术最终赢得了Firefox、Opera、Apple Safari、Microsoft Edge以及各种Chrome变种浏览器的支持。从这个角度来看,这是一个巨大的成功。但具有讽刺意味的是,谷歌自己的涉及视频的产品似乎都没有取得多大的商业成功。比如视频会议,人们甚至不会想到谷歌的产品。相反,Google的许多竞争对手都采用了WebRTC来获得竞争优势。
WebRtc支持超过90%的浏览器。
当WebRTC成为公共标准时,谷歌自己似乎也在与WebRTC“脱钩”,开始投资另一个全新的技术栈:web transport+web codecs+web assembly。其中WebTransport主要基于QUIC,带来更低的网络延迟,更适合视频应用。WebCodecs内置于浏览器中,这使得它能够拥有独立的音频和视频编码和解码功能。WebAssembly这种已经发展了相当长时间的开源技术已经进入了成熟阶段。它不仅在“原生”水平上提高了浏览器渲染和执行Javascript代码的性能,更重要的是,它可能支持机器学习的结合。
如果作为WebRTC开源技术主要推动者的Google不再投入,那么WebRTC 1.0之后,除了小版本的修修补补,还有可持续发展的未来吗?我们基于WebRTC构建应用,就不用担心吗?
WebRTC已经成为下一代互联网实时应用的基石。估计有点挂了,因为那里确实有潜在的更好的解决方案。然而,对于应用程序开发人员来说,WebRTC可能是我们未来几年的最佳解决方案,原因有三:
别说HTTP/3了。今天,互联网的主体仍然依赖于陈旧过时的HTTP/1.1,HTTP/2仍然在缓慢增长。一个积累了10年,已经成熟的标准,不容易被替代;虽然苹果有自己的FaceTime、Zoom等封闭技术,也可能不在乎WebRTC,但是对于独立开发者来说,一个标准的、开放的、互联的、工业级质量的开源技术仍然是我们最好的选择;标准和开源的好处是,只要一些企业能用它做出杀手级的应用和商业上的成功,就会有人继续支持维护和创新,接过谷歌的枪。比如会不会有人把WebRTC去中心化的更彻底?用QUIC优化WebRTC的低延迟?总会有人想到的。
作为应用开发者,你能做的就是应用场景的创造性发现和创新,这是促进一个标准/技术繁荣和生命力的最好保障。
有哪些杀手级的WebRTC应用?
亚马逊智能音箱Echo中的智能助手Alexa使用的是WebRTC。
脸书、Discord、亚马逊Chime、谷歌Meet/Hangout/Duo都是基于WebRTC的视频通讯工具和视频会议应用。
Clubhouse,2021年现象级语音社交工具。
Chrome远程桌面,一个远程桌面工具。对于普通商务人士,比如市场,销售等。,可能太技术化了,控制不了。但是为什么没有人研究借鉴这个工具,开发出实时远程销售培训、实时远程机器维修人员培训、实时远程医务人员培训之类的东西呢?
最后,必须推荐三家WebRTC相关的公司及其应用场景:
peer5.com
Peer 5是一个基于WebRTC的eCDN,它充分利用了WebRTC浏览器内置的P2P功能,对互联网上的内容进行加速。今年8月被微软收购。这是一个创业公司在新标准和开源技术帮助下的成功故事。

hopin.com
英国独角兽公司Hopin利用WebRTC搭建了一个“虚拟活动平台”。成立两年后,成功融资5.7亿美元,收购了4家公司。
stadia.com
Stadia,这是谷歌进军游戏行业的一次大尝试。是否会成功就不讨论了。有趣的一点是开启了云游戏领域,也可以称为“游戏即服务”或“按需游戏”。怎么理解呢?一直以来,当我们玩Xbox和任天堂游戏时,我们都需要购买一台游戏机,当我们玩不同的游戏时,我们会放入不同的游戏光盘。云游戏,就是不需要本地光盘。游戏在云端运行,然后通过流媒体传输到你的屏幕上,就像你在电视上点电影一样,但是你可以用游戏手柄和“电影”互动。
你如何看待WebRtc未来的发展?欢迎与我们交流。


