WebRTC是如何工作的3

作者:Tsahi Levent-Levi(原文链接

翻译:刘通

原标题:How WebRTC Works

前文链接:WebRTC是如何工作的1;     WebRTC是如何工作的2

build-buy3

WebRTC API视角

WebRTC主要有三个主要的API大类:

1. getUserMedia

2. PeerConnection

3. Data Channel

getUserMedia

getUserMedia负责让用户能够访问摄像头,麦克风和屏幕。它对那些在本地上工作,而不需要实时通话的人来说也有价值。

一下是独立的getUserMedia的一些应用:

# 拍摄用户的档案照片

# 采集音频样本,并且把它们发给语音转文字引擎

# 录制音频和视频,而不会由于丢包导致质量下降

我相信你还能想到一些其他的应用

webrtc-logo

PeerConnection

PeerConnection是WebRTC的心脏,也是最难实现最难理解的部分。从某种程度上来说,它可以做任何事情。

# 它处理所有的SDP消息交换过程(不通过网络本身发送,而是生成他们并处理输入的消息)

# 它实现ICE以连接媒体通道,如果需要的话,要通过TURN中继。

# 它实时地对音视频数据进行编码和解码

# 它通过采用自适应的抖动缓冲区,带宽估计,数据丢包隐藏,前向纠错以及其他算法来处理网络问题,这些算法你并不想了解,但往往最终必须要学习它们。

# 它使用诸如回声消除算法来处理本地音频问题。

对等连接内部影响最终媒体质量的因素大部分都是基于启发式的。这是一组特定的规则。因此,不同的实现可能会有不同的表现以及不同的媒体质量。

DataChannel

我早些的时候讨论过数据通道。

唯一需要补充的是:

1. 数据通道可以配置为可靠或者不可靠的。如果将它们设置为不可靠,则消息不会在其上面进行自动重传。某些情况,你可能会更想要这种情况。也可以将它们配置为按照传递消息的方式进行排序,或者是配置为无序的。

2. 数据通道被设计为在类似于WebSocket的API级别上工作,所以一旦打开它的话就可以用类似WebSocket的方式思考它。

你可以在这里找到关于人们在数据通道上做什么的一些想法。当然你还有很多其他可以使用它的方法。

 

未完待续……

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营