WebRTC - 概述



随着WebRTC(Web 实时通信)的出现,网络不再与实时通信隔绝。尽管它于 2011 年 5 月发布,但它仍在不断发展,其标准也在不断变化。一组协议由IETF(互联网工程任务组)http://tools.ietf.org/wg/rtcweb/处的网络浏览器中的实时通信工作组标准化,而新的 API 集则由W3C(万维网联盟)http://www.w3.org/2011/04/webrtc/处的Web 实时通信工作组标准化。随着 WebRTC 的出现,现代 Web 应用程序可以轻松地将音频和视频内容流式传输到数百万人。

基本方案

WebRTC 允许您快速轻松地建立到其他 Web 浏览器的点对点连接。要从头开始构建这样的应用程序,您将需要大量的框架和库来处理诸如数据丢失、连接断开和 NAT 穿越等典型问题。使用 WebRTC,所有这些都内置在浏览器的开箱即用功能中。这项技术不需要任何插件或第三方软件。它是开源的,其源代码可在http://www.webrtc.org/.免费获得。

WebRTC API 包括媒体捕获、音频和视频的编码和解码、传输层以及会话管理。

Basic Scheme

媒体捕获

第一步是访问用户设备的摄像头和麦克风。我们检测可用设备的类型,获取用户访问这些设备的权限并管理流。

音频和视频的编码和解码

通过互联网发送音频和视频数据流并非易事。这就是编码和解码发挥作用的地方。这是将视频帧和音频波分解成更小的块并压缩它们的过程。此算法称为编解码器。有大量的不同编解码器,由不同公司维护,具有不同的业务目标。WebRTC 内部也有许多编解码器,如 H.264、iSAC、Opus 和 VP8。当两个浏览器连接在一起时,它们会在两个用户之间选择最优的支持的编解码器。幸运的是,WebRTC 在幕后完成了大部分编码工作。

传输层

传输层管理数据包的顺序、处理数据包丢失以及连接到其他用户。同样,WebRTC API 使我们能够轻松访问告知我们连接出现问题的事件。

会话管理

会话管理处理管理、打开和组织连接。这通常称为信令。如果您将音频和视频流传输给用户,那么传输辅助数据也是有意义的。这是通过RTCDataChannel API完成的。

来自 Google、Mozilla、Opera 等公司的工程师已经出色地将这种实时体验带到了 Web 上。

浏览器兼容性

WebRTC 标准是 Web 上发展最快的标准之一,因此这并不意味着每个浏览器都同时支持所有相同的特性。要检查您的浏览器是否支持 WebRTC,您可以访问https://caniuse.cn/#feat=rtcpeerconnection。在所有教程中,我建议您在所有示例中都使用 Chrome。

试用 WebRTC

让我们立即开始使用 WebRTC。

Click JOIN

点击“加入”按钮。您应该会看到一个下拉通知。

Click Allow

点击“允许”按钮开始将您的视频和音频流式传输到网页。您应该会看到您自己的视频流。

Open the URL

现在在新的浏览器选项卡中打开您当前所在的 URL,然后点击“加入”。您应该会看到两个视频流 - 一个来自您的第一个客户端,另一个来自第二个客户端。

Video Stream

现在您应该理解为什么 WebRTC 是一款强大的工具。

用例

实时 Web 为一系列全新的应用程序打开了大门,包括基于文本的聊天、屏幕和文件共享、游戏、视频聊天等等。除了通信之外,您还可以将 WebRTC 用于其他目的,例如 -

  • 实时营销
  • 实时广告
  • 后台办公通信(CRM、ERP、SCM、FFM)
  • 人力资源管理
  • 社交网络
  • 约会服务
  • 在线医疗咨询
  • 金融服务
  • 监控
  • 多人游戏
  • 直播
  • 电子学习

总结

现在您应该清楚地了解 WebRTC 的含义。您还应该了解可以使用 WebRTC 构建哪些类型的应用程序,因为您已经在浏览器中尝试过它了。总而言之,WebRTC 是一项非常有用的技术。

广告