一看就懂的 WebRTC:不装软件也能通话

用最通俗的方式讲清楚 WebRTC:你的浏览器怎样在不安装任何软件、不装插件的情况下,直接进行语音和视频通话,它的四个工作步骤,它擅长什么、有哪些局限,安全性怎么样,以及通话中常见的没声音、回声、声音断断续续等问题该怎样一一排查解决。

虚拟形象与 3D阅读约 6 分钟

Leer en españolRead in EnglishLer em portuguêsЧитать на русскомहिंदी में पढ़ें

WebRTC 是一项内置在现代浏览器里的技术,让你直接在网页上进行语音、视频通话和实时数据传输,不需要安装软件或插件。当你点开一个链接加入会议,几秒钟后就开始说话了,背后很可能就是 WebRTC 在工作。它的名字是 Web Real-Time Communication(网页实时通信)的缩写。

你不需要是程序员也能理解它。下面是简单版本,只讲作为用户真正有用的部分。

在 WebRTC 之前

几年前,要在电脑上视频聊天,你得安装一个软件或者浏览器插件。每个服务都有自己的 App,如果嘉宾没装,就得花十分钟安装、更新、注册账号。

WebRTC 改变了这一切。如今,主流浏览器(Chrome、Edge、Firefox、Safari,以及基于它们的浏览器)都内置了它。所以网页才能请求使用你的麦克风,并立刻把你和别人连接起来。

它是怎么工作的,四个步骤

把一次通话想象成两个想说话的人,中间隔着一座满是围墙的城市:

  1. 授权。 浏览器会问你,这个网页能不能使用你的麦克风(如果需要的话,还有摄像头)。你不点“允许”,什么都不会发生。
  2. 牵线。 网页运营方的服务器帮两个浏览器“找到”彼此,并商量好怎么通话:用哪种音频格式、怎么连接。这叫作信令。
  3. 找路。 你的网络几乎总是在路由器或公司网络后面。WebRTC 会借助一些辅助服务器(叫作 STUN 和 TURN),在参与者之间找到一条通路。如果没有直连的路,音频就会经过中继服务器。
  4. 对话。 连上之后,音频以加密的方式在参与者之间传输,延迟非常低。

这一切在一两秒内完成。

它擅长什么

  • 无需安装。 一个链接就够了。
  • 低延迟。 它是为对话设计的,而不是为了看有延迟的视频。延迟通常很小,大家可以自然地插话、回应。
  • 强制加密。 WebRTC 的通信在设计上就是加密的。
  • 自适应网络。 如果你的网络变差,它会降低质量,让通话不至于中断。
  • 跨平台。 在不同操作系统的电脑上和手机浏览器里都能用。

它的局限

  • 依赖你的网络。 如果网络不稳定,就会出现断断续续或者机器人般的声音。看看远程录制需要多快的网速。
  • 限制很严的网络。 有些公司或学校的网络会封锁某些端口;中继服务器能帮上忙,但不总是有效。
  • 参与者很多时。 如果每个人之间都直接连接,每个人都要把自己的音频发给所有其他人。小组里效果很好;对于大型群组,服务商会使用中间服务器。
  • 它不负责录制。 WebRTC 传输的是实时对话。录制是另一回事,每个服务各有各的做法(或者根本不做)。

常见问题及解决办法

症状 可能的原因 怎么办
没人听得到你 浏览器没有麦克风权限 检查地址栏里的锁或麦克风图标,允许访问
能听到你,但有回声 有人用的是外放而不是耳机 所有人都戴耳机
声音断断续续或像机器人 网络不稳定或拥堵 离路由器近一点、用网线,或者暂停下载
在公司网络里连不上 公司防火墙 换个网络试试,或者问问技术支持
用错了麦克风 系统选了另一个设备 在浏览器或系统设置里切换麦克风
旧浏览器里用不了 版本过旧 更新浏览器

一个通用的建议:重要的会话之前,提前五分钟加入并测试一下。大多数问题都出在权限或者选错了设备上。

日常生活里的 WebRTC

哪怕你没注意到,WebRTC 也无处不在:浏览器里的工作会议、在线问诊、带视频的技术支持、带语音聊天的游戏、网课,还有浏览器里的播客工作室。

以 remocast 为例,房间里参与者之间的语音就是通过 WebRTC 传输的。所以你的嘉宾点开链接就能加入,不用安装任何东西,最多六个人可以在同一间 3D 工作室里聊天。与此同时,每个人的虚拟形象会跟着他的声音动嘴;如果你对这部分感兴趣,读读虚拟形象的口型同步是什么。

它安全吗?

WebRTC 会对传输的音频和视频进行加密,浏览器在使用麦克风或摄像头之前也一定会征求你的许可。此外,很多浏览器在麦克风开启时会显示一个提示标志。

仍然取决于你和服务商的部分:

  • 只进入你信任的网页。
  • 检查哪些网站有麦克风权限,把不再用的移除。
  • 不说话时用静音键。
  • 如果你要用其他工具录下对话,告知参与者。详见录制他人需要哪些许可。

如果你想亲眼看看它的效果,免费创建你的工作室,把链接分享给一个朋友。

常见问题

用 WebRTC 需要安装什么吗?

不需要。它内置在现代浏览器里。你只需要允许网页使用你的麦克风或摄像头。

WebRTC 在手机上能用吗?

能,在当前的手机浏览器里都可以。体验取决于网页本身:有些网页是为电脑设计的,在大屏幕上看起来或用起来更好。

为什么我在浏览器通话里的声音像机器人?

几乎总是网络的问题:Wi-Fi 信号弱、网络拥堵,或者离路由器太远。试试用网线、离路由器近一点,或者暂停其他下载。

参考资料

  1. WebRTC: Real-Time Communication in Browsers — W3C
  2. WebRTC API — MDN Web Docs
  3. Introduction to WebRTC protocols — MDN Web Docs
  4. RFC 8827: WebRTC Security Architecture — IETF
  5. MediaDevices: getUserMedia() method — MDN Web Docs

如果这篇文章对你有帮助,关注我们,不错过后续文章: