我们来学习写WebRTC的运行机制。

首先来看两个基本概念,轨与流:

轨与流:

  • Track(轨):采取了轨道的概念,两条轨之间是不想交的,就像我们的一路音频和一路视频都是一路轨,两者是不想交的,两路音频也是不想交的两个轨。
  • MediaStream:就是媒体流,包含了很多轨。

几个重要的类:

MediaStream:媒体流

RTCPeerConnection:WebRTC中最为重要的一个类,大而全,应用层只需要创建一个RTCPeerConnection连接,然后建一个流放进去就可以不用管了,所有的传输等都在RTCPeerConnectionne内部自己完成,其内部做了很多内容,P2P的检测、是否打通等。重点要掌握的类。

RTCDataChannel:传输非音视频数据,RTCDataChannel是通过RTCPeerConnection获取的。

同样的MediaStream中的很多轨以及RTCDataChannel二进制数据都传给RTCPeerConnection进行传输管理,应用层就不要多余的操作。接下来我们来看一下RTCPeerConnection的调用过程,下图是从WebRTC官网获取到的:

WebRTC入门与实战 --- WebRTC运行机制

从图中我们可以看到,总共有两块内容Stream和PeerConnection,流Stream里边会有多个轨,音频轨、视频轨等等;然后就是PeerConnection,PeerConnection内部有两个线程,worker和signaling,同过连接工厂PeerConnectionFactoryInterface创建,PeerConnectionFactoryInterface可以创建多个PeerConnection,stream,video/audiotrackinterface,首先一个一个音视频的轨通过addtrack添加到媒体流MediaStream中(也有可能有多个媒体流,比如音视频会议中多方通讯),再通过addstream添加到PeerConnection,整体调用过程如下图:

               

WebRTC入门与实战 --- WebRTC运行机制

 

相关文章:

  • 2021-06-18
  • 2021-09-06
  • 2022-12-23
  • 2022-12-23
  • 2021-06-30
猜你喜欢
  • 2022-01-12
  • 2021-08-31
  • 2021-04-06
  • 2021-08-24
  • 2021-11-01
  • 2021-11-06
  • 2021-10-23
相关资源
相似解决方案