webrtc是一個基于瀏覽器的開源實時通信開發庫,我們可以通過簡單的javacript語言實現在網頁上傳輸實時的音、視頻傳輸,webrtc支持的瀏覽器包括:谷歌chrome瀏覽器、firefox瀏覽器、Mozillia、Opera瀏覽器等,webrtc的出現為我們的網頁視頻會議的開發提供了一條捷徑。Webrtc是Google收購著名的GIPS公司后推出的開源項目,其源代碼里面不僅公開了GIPS公司的語音引擎—VoiceEngine,還在這基礎上實現了面向瀏覽器的音、視頻實時通信。對于這個重量級的開源項目,我們應該怎樣充分利用它作為我們網絡視頻會議開發的參考呢?我們現在就列舉一下webrtc的主要功能及我們如果使用這些功能。
1、 語音引擎
語音引擎是GIPS的語音通信的殺手锏,其主要是通過一系列的傳輸控制來達到在低帶寬下傳輸實時的語音,GIPS語音引擎有著廣泛的客戶群,如skype、QQ等語音都是采用GIPS的語言引擎。通過其語音引擎,不僅能傳輸質量更高的語音,還能在丟包非常嚴重的網絡下傳輸實時的語音。我們應該怎樣把語音引擎利用到我們的視頻會議開發當中呢?首先我們需要知道webrtc的代碼是基于C++,因此我們的開發調用的接口最好是采用c++。另外語音引擎需要全部的模塊結合起來才能發揮最佳的作用,因此我們不能把語音引擎進行分割,語音引擎需要整體運行才可能充分發揮其作用。
2、 視頻引擎
webrtc的視頻引擎和語音引擎一樣,其不能進行分割,如果我們使用的話,最好是整個視頻引擎一起使用。webrtc的視頻引擎從視頻采集、視頻壓縮、視頻傳輸、視頻顯示都已實現。在網絡視頻會議開發當中,我們可以通過視頻引擎的接口來實現以上的功能。
3、 音頻處理模塊
webrtc的音頻處理模塊與語音引擎不同,其可以分成不同的獨立處理模塊,因此我們可以把這些模塊抽取出來作為我們的音頻處理模塊,其模塊主要包括:音頻采集、編解碼(iLIBC/iSAC/G722/PCM16/RED/AVT、NetEQ)、音頻加密、語音文件處理、聲音處理(AEC、ANS、AGC等)、聲音輸出、音量控制、音視頻同步、網絡傳輸等模塊。
4、 視頻處理模塊
視頻處理模塊同樣可以是分成不同的模塊,因此我們可以把它做為我們視頻會議系統的不同模塊,而這些模塊包括視頻采集、編解碼、視頻加密、流媒體文件、圖像處理、視頻顯示、網絡傳輸與數據控制等功能。
總結,webrtc是一個完整、開源的音、視頻實時傳輸庫,其一些模塊如:AEC、ANS、數據加密、音視頻同步等模塊非常值得我們在網絡視頻會議開發中作為參考,從而提高視頻會議系統各模塊的處理效率。