简要介绍了 WebRTC 的历史、架构、用例和未来。
定义 Web 标准是一个漫长的过程,旨在确保在各浏览器中都具有实用性、一致性和兼容性。今天,W3C 和 IETF 宣布完成了在疫情期间可能最重要的标准之一:WebRTC。
历史记录
WebRTC 是一个平台,可为浏览器、移动应用和桌面应用提供实时通信功能,通常用于视频通话。该平台由一整套全面的技术和标准组成。Google 于 2009 年提出了创建 WebRTC 的想法,以替代无法在浏览器中运行的 Adobe Flash 和桌面应用。上一代基于浏览器的产品基于许可专有技术构建而成。许多产品都是使用这项技术构建的,包括 Hangouts。然后,Google 收购了之前从其获得该技术许可的公司,并将其作为开源 WebRTC 项目提供。此代码库已集成到 Chrome 中,并且大多数使用 WebRTC 的应用都使用它。我们与 Mozilla、Microsoft、Cisco 和 Ericsson 等其他浏览器供应商和业界领军者一起,在 W3C 和 IETF 启动了 WebRTC 标准化工作。2013 年,Mozilla 和 Google 演示了其浏览器之间的视频通话功能。随着该标准的演变,许多架构讨论导致了浏览器之间的实现差异,并对兼容性和互操作性提出了挑战。随着标准在过去几年内的最终确定,其中的大多数分歧最终得到了解决。WebRTC 规范现在附带一整套平台测试和工具来解决兼容性问题,浏览器也已在很大程度上相应地调整了其实现。这结束了 Web 开发者必须不断调整其服务以适应不同的浏览器实现和规范变更的艰难时期。
架构和功能
RTCPeerConnection
API 是 WebRTC 规范的核心部分。RTCPeerConnection
用于连接位于不同端点上的两个应用,以便使用点对点协议进行通信。PeerConnection
API 与 getUserMedia
密切互动,以访问相机和麦克风,并与 getDisplayMedia
密切互动,以捕获屏幕内容。借助 WebRTC,您可以通过 DataChannel
发送和接收包含音频和/或视频内容以及任意二进制数据的串流。用于处理、编码和解码音频和视频的媒体功能是任何 WebRTC 实现的核心。WebRTC 支持各种音频编解码器,其中 Opus 是最常用且最通用的编解码器。WebRTC 实现必须同时支持 Google 的免费 VP8 视频编解码器和 H.264 来处理视频。WebRTC 连接始终处于加密状态,这是通过两个现有协议(DTLS 和 SRTP)实现的。WebRTC 在很大程度上依赖于现有标准和技术,从视频编解码器 (VP8、H264)、网络穿越 (ICE)、传输 (RTP、SCTP) 到媒体描述协议 (SDP)。这在 50 多项 RFC 中进行了整合。
应用场景:需要几毫秒的时间
WebRTC 广泛用于时间敏感型应用,例如远程手术、系统监控和自动驾驶汽车的远程控制,以及无法缓冲的基于 UDP 的语音或视频通话。Google、Facebook、思科、RingCentral 和 Jitsi 等公司提供的几乎所有基于浏览器的视频通话服务都使用 WebRTC。Google Stadia 和 NVIDIA GeForce NOW 使用 WebRTC 将游戏流式传输从云端传输到网络浏览器,且没有明显延迟。
疫情让人们更加注重视频通话性能
在过去一年中,由于在浏览器中进行视频通话的次数增加,WebRTC 在 Chrome 中的使用量增加了 100 倍。浏览器供应商认识到,在疫情期间,视频通话已成为许多人生活中不可或缺的一部分,因此他们开始优化视频通话所依赖的技术。随着员工和学生开始在家工作和学习,需要大量资源的大型会议和视频会议中的视频效果变得越来越常见,这一点尤为重要。在过去一年中,Chrome 在视频通话时的耗电量最多减少了 30%,我们还将针对高用量场景进行更多优化。在疫情期间,Mozilla、Apple 和 Microsoft 在 WebRTC 实现方面都取得了显著进步,尤其是在确保遵守现已正式化的标准方面。
WebRTC 的未来
虽然 WebRTC 现已成为 W3C 标准,但我们仍在不断改进。新的视频编解码器 AV1 即将在 WebRTC 和网络浏览器中推出,可最多节省 50% 的带宽。我们会持续改进开源代码库,以进一步缩短延迟时间并提升可流式传输的视频质量。WebRTC NV 汇集了创建补充 API 的计划,以实现新的用例。这些 API 包括对现有 API 的扩展,可让您更好地控制现有功能(例如可伸缩视频编码),以及可访问较低级别组件的 API。后者可让 Web 开发者更灵活地集成高性能的自定义 WebAssembly 组件,从而进行创新。随着 5G 网络的兴起以及对更多互动服务的需求,我们预计在未来一年内,基于 WebRTC 构建的服务将继续增加。