WebRTC:整體架構、目錄結構、運行機制

整體架構

上圖中分爲2層:應用層、核心層

  • 最核心的是綠色的部分,是WebRTC提供的核心功能。
  • 紫色部分是瀏覽器提供的js API層。[即瀏覽器對WebRTC核心層的C++做了封裝]

WebRTC庫屬於核心層(綠色部分)。

核心層比較複雜:分爲4層:

  1. C++ API: 提供給外邊的API接口(主要是對等連接PeerConnection)
  2. Session上下文管理層:管理相關的邏輯
  3. 引擎層:音頻引擎(編解碼、音頻緩衝buffer防止抖動、迴音消除)、視頻引擎(圖形處理增強、防抖動、人臉識別等)、傳輸(底層是UDP,上層RTP,安全傳輸SRTP、多個流的通道複用、P2P協議、線路的檢測估算網絡帶寬等、音視頻非音視頻的傳輸)。【音頻和視頻的同步不是在引擎層做的】
  4. 與硬件相關:音頻的採集的渲染、視頻的採集(無視頻的渲染,需要瀏覽器/應用層自己去做)、網絡IO

目錄結構

需要掌握的目錄結構:

1.源碼目錄:

2. Modules目錄:

 


運行機制

1.軌與流:

  • Track軌: 一路音頻是一路軌,一路視頻也是一路軌。2條軌之間永遠不相交。單獨存放。
  • MediaStream流:包括音頻軌、字幕軌等。

2. WebRTC中重要的類:

  • MediaStream
  • RTCPeerConnection
  • RTCDataChannel

3.PeerConnection調用過程:

4.調用時序:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章