WebRTC手記Channel概念


轉載請注明出處:http://www.cnblogs.com/fangkm/p/4401075.html 

前面兩篇博文完整地介紹了WebRTC音視頻的采集模塊,接下來應該開始介紹關鍵的音視頻編碼模塊。不過在介紹音視頻編碼模塊之前,需要介紹一下Channel概念,WebRTC的每路數據的傳輸流程都封裝成一個Channel對象。詳細UML圖如下:

MediaChannel及其派生類封裝了待傳輸的編解碼、RTP/RTCP封包解包等邏輯,具體對象由相應的Media Engine類創建,如圖:視頻Channel最終的實現類WebRtcVideoChannel2由WebRtcVideoEngine2創建,音頻Channel最終的實現類WebRtcVoiceMediaChannel由WebRtcVoiceEngine創建。

Channel部分暴露給外界的操作接口還是ChannelManager類中管理的BaseChannel及其派生類,通過這些類,外部模塊可以設置音視頻的采集源(如VideoCapturer)、為網絡發送過來的音視頻數據指定渲染器(如AudioRenderer/VideoRenderer),這些類對MediaChannel及其派生類的基礎上再包裝了一層,如圖所示,BaseChannel實現MediaChannel的NetworkInterface接口完成封裝好的RTP/RTCP數據包包的發送操作,具體純數據的網絡發送請求最終委托給TransportChannel對象。TransportChannel對象的邏輯以后介紹網絡層的時候再講。

好了,下一篇開始介紹WebRtcVideoEngine2和由它創建的視頻Channel類WebRtcVideoChannel2。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM