从技术实现上看,浏览器之间的实时通信需要用到很多技术,比如音视频编解码、网络连接管理、实时媒体数据传输等。 它还需要提供一组易于使用的 API 供开发人员使用。 这些技术的结合就是WebRTC技术架构
WebRTC技术架构

WebRTC 技术架构的顶层分为两部分。 其中一部分是 Web API,一组 JavaScript 接口,由 W3C 维护。 开发人员可以使用这些 API 在浏览器中创建实时通信应用程序。 另一部分是libwebrtc,适用于移动端和桌面端开发,是使用WebRTC C++源码编译在Windows、Android、iOS等平台上的开发包。 开发者可以使用这个开发包来创建原生的 WebRTC 应用程序。 第二层是WebRTC C++ API,是Web API和libwebrtc的底层实现。 该层包含用于连接管理、连接设置、会话状态和数据传输的 API。 基于这些 API,浏览器供应商可以轻松添加对 WebRTC 的支持。 WebRTC规范中没有包含信令协议,这部分需要研发人员根据业务特点来实现。 WebRTC支持的音频编码格式有OPUS和G.711,在音频处理层也实现了回声消除和降噪。 WebRTC支持的视频编码格式主要有VP8和H264(部分浏览器支持VP9和H265格式)。 WebRTC还实现了Jitter Buffer防抖、图像增强等高级功能。

在媒体传输层,WebRTC在UDP之上增加了3个协议。 数据包传输层安全协议 (DTLS) 用于加密媒体数据和应用程序数据。 安全实时传输协议 (SRTP) 用于传输音频和视频流。 流控制传输协议 (SCTP) 用于传输应用程序数据。 WebRTC 使用 ICE 技术在终端之间建立 P2P 连接。 它提供了一系列用于管理连接的 API。 WebRTC还提供了摄像头、麦克风、桌面等媒体采集API,可用于自定义媒体流。 我们将在后面的章节中详细讨论 WebRTC 架构的主要技术(不包括 C++ 部分),并通过示例演示这些技术的应用。

标签: 视频会议系统技术架构, WebRTC技术架构, 无纸化会议技术架构