首頁(yè) > 新聞 > 專家觀點(diǎn) >

開(kāi)發(fā)一個(gè)實(shí)時(shí)音視頻通信系統(tǒng),你需要什么技術(shù)儲(chǔ)備?

2016-06-14 10:32:33   作者:   來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  實(shí)時(shí)通訊系統(tǒng),RTC(real time communication),是最近互聯(lián)網(wǎng)應(yīng)用的一個(gè)新領(lǐng)域。RTC系統(tǒng)的應(yīng)用極其廣泛,我們常見(jiàn)的視頻電話,會(huì)議系統(tǒng),遠(yuǎn)程桌面與控制都是RTC系統(tǒng)的一個(gè)應(yīng)用。在移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展的今天,各種應(yīng)用都渴望加入RTC的功能,實(shí)現(xiàn)用戶與企業(yè),用戶與用戶之間的音視頻交流。于是問(wèn)題出現(xiàn)了,開(kāi)發(fā)一個(gè)RTC系統(tǒng)需要什么技術(shù)儲(chǔ)備?
  有人說(shuō)只需要懂javascript就可以了。WebRTC的出現(xiàn)極大的降低了RTC的開(kāi)發(fā)門檻。只需要編寫javascript代碼就可以實(shí)現(xiàn)瀏覽器之間的音視頻通話。且不論通話質(zhì)量,瀏覽器的兼容性,網(wǎng)絡(luò)穿透能力,那些不使用HTML的原生APP怎么辦?
  又有人提出WebRTC也支持Native開(kāi)發(fā),只要有懂C++和相關(guān)應(yīng)用平臺(tái)(Android,iOS,Windows,Mac)開(kāi)發(fā)的軟件工程師就可以了。WebRTC確實(shí)可以在這些平臺(tái)上開(kāi)發(fā)原生的應(yīng)用。將WebRTC編譯打包后嵌入APP可以實(shí)現(xiàn)RTC的功能,就是說(shuō)能通了。但一個(gè)合格的RTC系統(tǒng)僅僅是能通就可以了嗎?
  以音視頻通話為例,用戶期望的RTC應(yīng)用應(yīng)該是:通話不卡不掉低延時(shí),聲音清晰真實(shí)無(wú)回聲,畫面流暢清晰無(wú)卡頓。如果直接采用上面WebRTC集成,我們很容易發(fā)現(xiàn),在大多數(shù)情況下,通話并不像原來(lái)想象的那樣完美。由于網(wǎng)絡(luò)的原因,通話斷斷續(xù)續(xù),延時(shí)很大。由于終端的適配不好,語(yǔ)音通話回聲嚴(yán)重,噪聲嚴(yán)重影響體驗(yàn)。視頻不清楚,不流暢。
  RTC系統(tǒng)的每一個(gè)部分都需要優(yōu)化,需要打磨,才能打造出完美的用戶體驗(yàn),F(xiàn)在的問(wèn)題是,開(kāi)發(fā)一個(gè)優(yōu)秀的RTC系統(tǒng)需要具備哪些技術(shù)儲(chǔ)備呢?
  終端
  解決語(yǔ)音通話的問(wèn)題,首先需要有合適的語(yǔ)音編解碼器,然后需要調(diào)整音頻處理模塊的算法。這里面內(nèi)容比較廣,有噪聲消除,回聲抑制,自動(dòng)增益。比較前沿的還有多麥克風(fēng)降噪,盲擴(kuò)增強(qiáng)等等?傊@些都需要算法的儲(chǔ)備,涉及語(yǔ)音信號(hào)處理、統(tǒng)計(jì)信號(hào)處理等方面的內(nèi)容。
  有了算法還不夠,還需要有好的實(shí)現(xiàn)。各個(gè)平臺(tái)(Android,iOS,Windows,Mac)底層音頻系統(tǒng)也需要深入了解。有時(shí)候算法挺好的,但有些機(jī)器先天不足,比較特別,需要特殊處理。這需要投入許多人力物力對(duì)各種型號(hào)的硬件做適配。優(yōu)秀的系統(tǒng)可能需要適配幾百上千個(gè)不同的設(shè)備。
  同樣的,對(duì)于視頻,我們需要對(duì)視頻編解碼器有深入的了解。這樣才能用最低的碼率展示清晰的視頻畫面。視頻的前后處理,比如降噪,增強(qiáng)(包括流行的美顏)也少不了。這就需要圖像與視頻信號(hào)處理。視頻數(shù)據(jù)量比較大,對(duì)底層視頻設(shè)備也需要深入研究。適配也少不了。
  網(wǎng)絡(luò)
  說(shuō)完了終端,再說(shuō)說(shuō)網(wǎng)絡(luò)。網(wǎng)絡(luò)抗丟包是必備選項(xiàng);ヂ(lián)網(wǎng)不是一個(gè)可靠的實(shí)時(shí)音視頻傳輸網(wǎng)絡(luò)。在不可靠的網(wǎng)絡(luò)中實(shí)現(xiàn)可靠的音視頻傳輸考驗(yàn)系統(tǒng)設(shè)計(jì)的能力。這里既有信道編碼的理論也有網(wǎng)絡(luò)對(duì)抗的實(shí)際經(jīng)驗(yàn)。
  如果要實(shí)現(xiàn)可靠的云服務(wù),遍布全球的服務(wù)器網(wǎng)絡(luò)也必不可少。高可用性,負(fù)載均衡等等...
  現(xiàn)在我們知道開(kāi)發(fā)一個(gè)RTC系統(tǒng)需要什么技術(shù)了。這個(gè)系統(tǒng)涉及到幾乎所有的網(wǎng)絡(luò)與音視頻處理的理論與實(shí)踐。
  作者簡(jiǎn)介:
  鄭仲侯聲網(wǎng)Agora.io音視頻構(gòu)架師
  碩士畢業(yè)于上海交通大學(xué)電子工程系,信號(hào)處理專業(yè)。先后在National Instruments,SRS,DTS工作十余年。專注信號(hào)處理算法與實(shí)踐,加入Agora后從事音視頻引擎的開(kāi)發(fā),持有雙麥降噪專利。
分享到: 收藏

專題