1.2 WebRTC的组成部分

WebRTC主要由以下几个组成部分:

  • 浏览器API:

WebRTC提供了一系列JavaScript API,使网页可以直接调用用户的摄像头和麦克风,并处理音视频通信相关的编码、解码、传输等功能。主要的API包括:

- getUserMedia:获取用户媒体流的访问权限。通过这个API,Web应用可以请求用户对摄像头和麦克风的控制权。用户授权后,应用可以获取本地音视频流进行处理。

- RTCPeerConnection:建立点对点的连接通道。这个API可以创建网络握手需要的会话描述信息,并发送到信令服务器;进行ICE候选地址收集;打开数据通道等。是建立浏览器间连接的关键。

- RTCDataChannel:支持点对点数据传输。提供了一个低延时、高吞吐量、双向通道,用于节点间直接传输数据。可用于传输文件、文本消息等。

  • 多媒体引擎:

WebRTC内置了强大的音视频引擎,可以对媒体流进行编解码、回声消除、降噪等处理。主要使用的音视频编解码器有:

- OPUS:一个开源的低延迟音频编解码器,用于WebRTC的音频编码。

- G.711:传统的语音编码标准,可保证PSTN互操作性。

- H.264:视频编码领域的通用标准,提供了高效的视频压缩编码。

- VP8:Google开源的视频编解码器,质量高且不需支付专利许可费。现在主要用于WebRTC视频编码。

  • 网络传输:

WebRTC利用ICE、STUN、TURN等技术,实现了浏览器之间的直接点对点连接,解决了NAT穿透问题,实现了高质量的网络传输。

- ICE(Interactive Connectivity Establishment,ICE):互动连接建立协议,用于连接对等点

- STUN(Session Traversal Utilities for NAT,STUN):会话遍历工具,用于辅助NAT穿透

- TURN(Traversal Using Relays around NAT,TURN):遍历服务器,在NAT完全受阻时提供中继功能

  • 标识服务:

WebRTC使用DTLS和SRTP进行了媒体流的加密,保证了通信安全。并利用数字证书对通信用户进行身份标识。

- DTLS :基于UDP的数据报传输层安全协议,提供关键效验机制

- SRTP: 实时传输协议,对RTP报文进行加密

推荐阅读
相关专栏
音视频杂谈
159 文章
本专栏仅用于分享音视频相关的技术文章,与其他开发者和声网 研发团队交流、分享行业前沿技术、资讯。发帖前,请参考「社区发帖指南」,方便您更好的展示所发表的文章和内容。