WebRTC如何獲取C ++端的視頻流數據?


WebRTC是一項開源技術,它可以通過網頁實現語音和視頻通信,而無需在瀏覽器中安裝任何插件。 如今,WebRTC技術已經較為成熟,其集成了最佳的音/視頻引擎,這項技術已經廣泛用於視頻通話中。

在WebRTC開發過程中,將遠端的sdp設置好之后,則可以獲取到視頻數據流。如果是js端,那么操作其實比較簡單。但是C++端稍微比較麻煩。因為WebRTC在頂部帶有一個Javascript API層,你可以在瀏覽器中使用它。這使得在任何地方開發和集成實時通信變得更加容易。在內部,WebRTC仍主要使用C / C ++實現。

有些開發者不太清楚如何獲取WebRTC C++端的視頻流數據。今天我們就和大家一起分享這個開發技巧:WebRTC如何獲取C ++端的視頻流數據。

 

 

1、首先,在WebRTC中src/api/create_peerconnection_factory.h 有一個創建對等連接工廠函數,並返回一個實例接口。代碼如下:

 

 

2、對等工廠創建完成后,在src/api/peer_connection_interface中有個對等連接,使用對等工廠來創建此對等連接實例。代碼如下:

 

 

3、看到這里,我們只需要關注CreatePeerConnection函數的最后一個參數。此參數需要進行重寫方法,這里有較多的需要重寫的虛函數。大致重寫有ICE、軌道和連接狀態等等。

4、到這一步就應該發現怎么獲取視頻數據流了。音頻重寫的方法里有個OnTrack函數,此函數則是負責監聽過來的視頻流實例。

5、負責重寫webrtc::PeerConnectionObserver函數里面的虛函數,實現可以監聽傳輸過來的流信息。獲取視頻流數據,只需要關注OnTrack函數:

 

 

webrtc::RtpTransceiverInterface接口找到receiver()方法,在從receiver()方法中找到track()方法,track()方法才是獲取到視頻流的信息。

 

 

 

 

WebRTC不僅限於語音和視頻,它功能強大且用途廣泛,這也是為什么WebRTC技術越來越流行的緣故。

基於開源WebRTC技術開發的EasyRTC視頻會議雲服務,廣泛應用在教育、金融、醫療健康、企業培訓、遠程辦公等場景,支持當前技術所有的瀏覽器包括Google Chrome,Mozilla Firefox,Apple Safari和Microsoft Edge。不僅限於瀏覽器,EasyRTC還可以支持微信小程序、H5頁面、APP、PC客戶端等接入方式之間互通,快速從零開始搭建實時音視頻通信;支持多人至百萬人視頻通話,滿足語音視頻社交。

 


免責聲明!

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



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