webrtc架构

347 阅读1分钟

整体架构

目录结构

运行机制

peerConnection 调用过程

从上图中可以得到以下结论:

  • Stream中可以包含一个或多个音频或视频轨.

  • PeerConnection内部有两个线程: worker thread 和 signal thread 是通过peer Connection factory 创建的.

  • peer connection factory 不仅可以创建peerconnection 还可以创建local media stream和local audio/video track.

  • stream 的addAudioTrack / addVideoTrack 接口可以将track添加到stream中.

  • peer connection的addStream接口可以将流添加到peerconnection上.

  • 多个流复用同一个peer connection.

调用时序图

  1. 应用层创建RTCPeerConnectionFactory对象

  2. RTCPeerConnectionFactory创建peer connection

  3. 将track添加到stream中, 将stream添加到peer connection中

  4. addstream会触发流的变化进而触发本地生成offer sdp描述信息

  5. 通过TCP传输将本地offer 发送给远端, 并将远端返回的answer 交给peer connection 从而完成协商和媒体连接

  6. 当远端有流发送过来之后, peerconnection 会交给应用层(peerconn section observe)进行处理.