解决方案

技术专栏

SOLUTIONS

技术专栏

联系我们

WebRTC技术概述(二)

首页 >> 技术专栏 >> WebRTC专栏 >> WebRTC技术概述(二)

WebRTC技术概述(二)

2.2 封装API

  WebRTC将音视频数据从设备采集到网络传输过程中涉及的功能封装到以下3个主要API:MediaStream、PeerConnection和DataChanel。MediaStream(即getUserMedia)用于表示被获取的媒体数据,例如来自麦克风和摄像头音视频流。PeerConnection用于表示在两个浏览器之间的连接。DataChannel表示一个在两个节点之间的双向的数据通道。值得注意的是由于WebRTC的标准化工作还未完成,所以目前这几个API的名称在不同浏览器及同一浏览器的不同版本之间略有差异,比如PeerConnection在FireFox上叫做mozRTCPeerConnection,而在当前版本的Chrome上叫做webkitRTCPeerConnection。


2.3 模块与API之间的关系

  在这节,我们将通过WebRTC的工作原理来阐述WebRTC各个组成模块与所封装的JavaScript API之间的关联关系。图2是一个WebRTC的工作原理示意图。在图2中,有两个集成WebRTC的浏览器,一个信令服务器,一个STUN/TURN服务器。浏览器访问基于WebRTC的Web应用。信令服务器对Web应用的信令进行解析。STUN/TURN服务器对Web应用进行NAT或防火墙穿透,以建立两个客户端的通信连接。具体工作流程如下:首先,使用Web应用的双方通过PeerConnection API将呼叫和应答请求发送给信令服务器;然后,STUN/TURN服务器对呼叫双方的防火墙和NAT进行穿透;之后,MediaStream通过音视频引擎对音视频数据进行采集;最后,Web应用将采集到的音视频数据发送到DataChanel,并采用RTP/SRTP协议进行传输。

  图 2 WebRTC各个组成模块与所封装的JavaScript API之间的关联关系

  2.4 应用场景

  WebRTC的音视频应用从连接的客户端的数量角度来区分,可以分为一对一模式和多人模式。同时,WebRTC为了取得快速的发展,其势必对传统网络,例如SIP,XMPP和PSTN网络进行无缝对接。

  A. 一对一模式

  该模式是最简单的应用模式。在上文图2中阐述WebRTC模块与API之间关联关系时的例子就是一个一对一模式。该模式的工作原理描述如下。首先,基于WebRTC的Web应用通过Web服务器来进行信令解析。然后,每个浏览器将本地采集到的音视频数据发送给对端浏览器。最后,每个浏览器对本地和对端的多媒体数据进行处理和显示。

  图 3 一对一模式

  B. 多人模式

  相比较于一对一模式,多人模式则更加复杂。该模式与一对一模式不同的是,每个浏览器将本地采集到的音视频数据广播给其余所有浏览器(如图4(a)所示)。由于终端的处理能力,电池续航能力以及网络带宽的限制,WebRTC目前最多能够支持6个人同时进行音视频服务。为摆脱由于终端的有限能力对WebRTC多人模式中人数的限制,目前,有些公司(例如因特尔)为WebRTC的特定应用提供MCU媒体控制单元。MCU负责对不同格式的音视频进行转码和将多人模式中的音视频流整合在一起再广播给每一个终端。基于MCU的多人模式的工作流程,如图4(b)所示。

  (a) (b)

  图 4(a)WebRTC原生多人通信模式,(b)基于MCU的多人通信模式。

  C. WebRTC与现有网络的互通模式

  由于在WebRTC出现之前,实时通讯业务已经取得了很大的发展。因此,WebRTC应与现有的实时通信业务无缝对接,才能取得快速的发展。为了与传统实时通信业务进行无缝对接,目前,各个厂商根据WebRTC和现有的实时通信业务开发出相应的网关设备,比如对应SIP/XMPP的服务器和PSTN(Public Switched Telephone Network——公共交换电话网络)网关。该网关负责将通过浏览器访问的Web应用和传统客户端访问的现有实时通信应用的信令进行适配,甚至多媒体格式之间的转化。具体的业务逻辑如图5所示。

图 5 WebRTC与现有网络的互通模式