EasyRTC實現基於WebRTC技術實現的即時通信類應用

WebRTC簡介

WebRTC,名稱源自網頁即時通信(英語:Web Real-Time Communication)的縮寫,是一個支持網頁瀏覽器進行實時語音對話或視頻對話的API。它於2011年6月1日開源並在Google、Mozilla、Opera支持下被納入萬維網聯盟的W3C推薦標準。EasyRTC基於WebRTC,憑藉多年音視頻開發經驗並結合實際情況,開發了 基於WebRTC的音視頻通訊雲平臺,提供互動教學、連麥直播、視頻會議、指揮調度等多種音視頻跨平臺解決方案。
WebRTC

WebRTC歷史

2010年5月,Google以6820萬美元收購VoIP軟件開發商Global IP Solutions的GIPS引擎,並改爲名爲“WebRTC”。WebRTC使用GIPS引擎,實現了基於網頁的視頻會議,並支持722,PCM,ILBC,ISAC等編碼,同時使用谷歌自家的VP8視頻解碼器;同時支持RTP/SRTP傳輸等。
2012年1月,谷歌已經把這款軟件集成到Chrome瀏覽器中。同時FreeSWITCH項目宣稱支持iSAC audio codec。

WebRTC核心API

WebRTC原生APIs文件是基於WebRTC規格書撰寫而成,這些API可分成Network Stream API、 RTCPeerConnection、Peer-to-peer Data API三類:

Network Stream API

MediaStream:MediaStream用來表示一個媒體數據流。
MediaStreamTrack:在瀏覽器中表示一個媒體源。
RTCPeerConnection:一個RTCPeerConnection對象允許用戶在兩個瀏覽器之間直接通訊。
RTCIceCandidate:表示一個ICE協議的候選者。
RTCIceServer:表示一個ICE Server。



Peer-to-peer Data API

DataChannel:數據通道(DataChannel)接口表示一個在兩個節點之間的雙向的數據通道。

WebRTC音頻引擎整體架構

WebRTC

在內部實現上,音頻引擎VoiceEngineImpl通過一系列對象來實現音頻處理,包括VoEAudioProcessingImpl、VoECodecImpl、VoENetworkImpl等等,每個對象負責具體某方面功能,例如VoEAudioProcessingImpl負責調用底層AudioProcessing模塊對音頻數據進行預處理。在這些功能對象中,比較重要的有VoEBaseImpl、SharedData和Channel。其中VoEBaseImpl是連接音頻設備AudioDevice和音頻引擎VoiceEngineImpl的紐帶,是音頻數據流水線上的重要一站;SharedData是一個聚合類,持有一系列重要對象;Channel則代表一路音頻數據,負責大部分對該路數據的重要操作,包括音頻數據的前處理、編解碼、發送和接收、後處理、混音等等。

從功能依賴上講,VoiceEngineImpl依賴五個重要的底層功能模塊:音頻數據採集和播放AudioDeviceModule 、音頻數據預處理AudioProcessing、音頻數據編解碼AudioCodingModule、接收端音頻數據緩衝區NetEq、接收端混音AudioConferenceMixer。此外音頻數據編解碼還依賴一系列音頻編解碼器如G711、G722、Opus等等。在發送端,音頻數據由AudioDevice採集得到,經過AudioProcessing預處理後,到達AudioCodingModule進行編碼,然後由RTPRTCP模塊發送到網絡。在接收端,音頻數據經過RTPRTCP模塊接收後到達AudioCodingModule,存儲在NetEq中進行抖動控制和錯誤消除,然後解碼。解碼後的數據經過AudioConferenceMixer進行混音,最終發送到AudioDeviceModule進行播放。

從整個WebRTC框架結構來看,音頻引擎和和視頻引擎都位於比較底層的位置,負責音視頻數據的採集、編解碼、渲染播放等工作。音視頻引擎的上一層是多媒體引擎WebRtcMediaEngine2,是對底層音視頻引擎VideoEngine的進一步高層抽象,由WebRtcVoiceEngine對VoiceEngine進行封裝,WebRtcVideoEngine2對VideoEngine進行封裝。
EasyRTC音視頻通訊雲平臺SDK哪些使用場景用到WebRTC?

1、在線教育

EasyRTC基於谷歌WebRTC開放標準打造,超低延遲、全終端覆蓋,可以滿足各類需求,支持一對一、多對對、共享視頻、共享課件、互動交流等功能。

2、視頻會議

EasyRTC高清流暢的音視頻、高安全性、全平臺運行、豐富的會議管理功能,支持視頻、語音多人會議,適用於會議、培訓、互動等多人移動會議。

3、指揮調度

EasyRTC高清流暢的音視頻、超低延時、指揮有力、資源保障等全面協調的的視頻通訊指揮平臺,實現現場應急與後方應急指揮中心的實時視頻通訊、同步傳輸、精準調度、各級高效協同。適用於安防監控、智能家居。

4、互動連麥

EasyRTC基於RTMP和RTC混合引擎的在線視頻連麥互動直播。iOS 直播(網絡自適應碼率RTMP Pusher)、點播播放器(播放器經過專業優化,可實現秒開RTMP Player)、基於RTMP 和RTC 混合引擎的的視頻連麥互動(最多支持四路連麥互動),適用於遊戲直播、美女秀場。

5、語音通話

EasyRTC支持視頻、語音、優先視頻等多種呼叫模式,適用於網絡電話、活動、教育等多種呼叫場景。

6、實時直播

EasyRTC實現快速實時直播,相比RTMP更加快捷,超低延時、極簡API接口、超快接入。適用於在線娃娃機、智能硬件、在線醫療、 視頻招聘、相親交友等多種場景。

詳細效果演示可查看:www.easyrtc.cn

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