anyRTC實現基於WebRTC的應用場景

前言

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

webrtc.jpeg

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:一個RTCPeerConnection對象容許用戶在兩個瀏覽器之間直接通信。
  • RTCIceCandidate:表示一個ICE協議的候選者。
  • RTCIceServer:表示一個ICE Server。

Peer-to-peer Data API框架

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

WebRTC對IT基本架構的好處

TCO WebRTC是藉助於網頁瀏覽器工做的,因此不須要單獨的音頻設備,或者連入專用交換機的IP/模擬電話及軟件電話。傳統上,曾經使用的是實體電話,可是維護它們須要很大的開銷。並且,與維護實體電話的錢已經加在了愈來愈多的基礎架構的預算中。當WebRTC發明以後,以上全部的開銷都減小了。當你使用WebRTC的時候,徹底不用進行安裝,維護,或者支持工做,音頻通道僅僅是你UI的一部分。WebRTC還能讓你的業務員進行遠程登陸。ide

ad-hoc擴展 一般,基礎框架團隊須要一整個月的辛苦工做和不少開銷來上線一個聯絡中心。可是有了WebRTC,一樣的一個聯絡中心想要上線只須要用不到一週的時間。這也會幫助那些組織以及初創公司在各類地區部署工做人員,並且不須要再音頻設備上投資時間和金錢。優化

網絡及帶寬使用和安全 WebRTC支持多種媒體格式及終端,這能夠幫助在你的工做人員和服務器之間提供最好的音視頻通訊。WebRTC使用Opus音頻編解碼器,專家說這個基於Skype SILK 編解碼技術的codec是最好的音頻解碼器。Opus代碼支持支持全部帶寬,窄帶,寬帶,超寬帶,和全頻帶。這意味着WebRTC比人耳分辨聲音的能力要更強。編碼

WebRTC音頻引擎總體架構

webrtc.png

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

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

  • 從整個WebRTC框架結構來看,音頻引擎和和視頻引擎都位於比較底層的位置,負責音視頻數據的採集、編解碼、渲染播放等工做。音視頻引擎的上一層是多媒體引擎WebRtcMediaEngine2,是對底層音視頻引擎VideoEngine的進一步高層抽象,由WebRtcVoiceEngine對VoiceEngine進行封裝,WebRtcVideoEngine2對VideoEngine進行封裝。

anyRTC音視頻通信雲平臺SDK哪些使用場景用到WebRTC?

一、在線教育

ArRoomEngine SDK,基於谷歌WebRTC開放標準打造,超低延遲、全終端覆蓋,能夠知足各種需求,支持大班課、小班課,提供白板功能,免費試用。

二、視頻會議

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

三、指揮調度

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

四、互動連麥

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

五、語音通話

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

六、實時直播

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

相關文章
相關標籤/搜索