WebRTC是什么

WebRTC(Web Real-Time Communication)是 Google于2010你那以$6829萬從 Global IP Solutions 公司購(gòu)買,并于2011年將其開源,旨在建立一個(gè)互聯(lián)網(wǎng)瀏覽器間的實(shí)時(shí)通信的平臺(tái),讓 WebRTC技術(shù)成為 H5標(biāo)準(zhǔn)之一。

  • 基于瀏覽器的 WebRTC應(yīng)用開發(fā)
  • C 層面的移植和開發(fā),可將其集成到多種平臺(tái)的應(yīng)用中,實(shí)現(xiàn)語(yǔ)音通話功能。

WebRTC集成了多種 audio codec,例如 ISAC、ILBC、G711、G722...

  • ISAC(Internet Speech Audio Codec)是一種寬帶和超寬帶音頻編解碼器,是 WebRTC音頻引擎的默認(rèn)編解碼器。

  • ILBC(Internet Low Bitrate Codec)是一種窄帶語(yǔ)音編解碼器,可保證低帶寬條件下較好的音質(zhì),采樣頻率為8kHZ,20ms 每幀時(shí)比特率為15.2kbps,30ms 每幀比特率為13.33kbps。

  • NetEQ 實(shí)現(xiàn)自適應(yīng)抖動(dòng)控制算法以及語(yǔ)音包丟失隱藏算法,用于適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境,確保音質(zhì)有沒且緩沖延遲最小。

  • AEC(Acoustic Echo Cancelling) 將回聲估計(jì)值從話筒的輸入信號(hào)中減去,從而達(dá)到消除回聲的目的。

  • NS(Noise Suppression) 探測(cè)出背景固定頻率的雜音并消除背景噪音。

  • VAD(Voice Activity Detection) 檢測(cè)到當(dāng)前為靜音,將只編碼生成數(shù)量小的靜音包,可大大節(jié)省編碼時(shí)間和帶寬。

  • AGC(Automatic Gain Control) 自動(dòng)調(diào)麥克風(fēng)的收音量,避免聲音忽大忽小。

  • RTP/RTCP(WebRTC Voice Engine) 成熟的 RTP 協(xié)議來傳輸實(shí)時(shí)音頻數(shù)據(jù)。

  • 混音 WebRTC 支持接收多人得語(yǔ)音數(shù)據(jù)并混音后播放的功能。

WebRTC Voice 模塊

  • AudioDeviceModule 負(fù)責(zé)采集和播放音頻數(shù)據(jù)
  • AudioProcessModule 用于處理編碼前和解碼后的數(shù)據(jù)
  • AudioCodingModule 用于編碼或解碼音頻數(shù)據(jù)
  • AudioConferenceMixer 當(dāng)有多路音頻時(shí)完成混音工作
  • RtpRtcpModule 編碼數(shù)據(jù)通過 RTP 協(xié)議傳輸
WebRTC Voice 業(yè)務(wù)流程

WebRTC音頻通話鏈路

WebRTC將每個(gè)音頻通話抽象為一個(gè) channel,若開啟多個(gè) channel 則播放時(shí)會(huì)將這幾個(gè) channel 的音頻數(shù)據(jù)混音后再播放。
對(duì)一個(gè) channel 而言,處理這個(gè) channel 的數(shù)據(jù)將包含三個(gè)線程:采集線程、接收線程、播放線程。

  • 采集線程用于采集編碼數(shù)據(jù)
  • 接收線程用于接收RTP數(shù)據(jù)并解碼
  • 播放線程用于播放音頻數(shù)據(jù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容