WebRTC開(kāi)源之前,音視頻通信聽(tīng)起來(lái)好高級:回聲消除、噪聲抑制……對于看到傅里葉變換都頭疼的工程師很難搞定這些專(zhuān)業(yè)領(lǐng)域的問(wèn)題。

Google收購了GIPS,開(kāi)源了WebRTC項目之后,開(kāi)發(fā)者可以自己折騰出互聯(lián)網(wǎng)音視頻通信了。下載、編譯、集成之后,第一次聽(tīng)到通過(guò)互聯(lián)網(wǎng)傳過(guò)來(lái)的喂喂喂,工程師會(huì )非常興奮,demo到萬(wàn)人直播現場(chǎng)只差一步了。
但是,電信行業(yè)要求可用性4個(gè)9,而剛剛讓人興奮的“喂喂喂”,1個(gè)9都到不了。某公司在展會(huì )上演示跨國音視頻,多次呼叫無(wú)法接通,自嘲說(shuō)我們還沒(méi)有做網(wǎng)絡(luò )優(yōu)化嘛。這就等于互聯(lián)網(wǎng)全民創(chuàng )業(yè)時(shí)期的”就差個(gè)程序員了“,本質(zhì)上是和demo與真正產(chǎn)品之間的差距,是外行與內行之間的差距。
小紅說(shuō)家里WIFI聊QQ、打斗地主毫無(wú)壓力,用你的音視頻通話(huà)就卡的不行。想開(kāi)發(fā)分享到微信這個(gè)功能,百度個(gè)文檔照著(zhù)一步步干就好了;但是找不到這樣一個(gè)文檔,照著(zhù)做就能解決用戶(hù)報的這些問(wèn)題,進(jìn)而把音視頻通話(huà)做到電信水平。
音視頻通話(huà)對教育、社交、約會(huì )類(lèi)APP是剛需功能,上述問(wèn)題會(huì )迫使用戶(hù)使用更穩定的skype或微信來(lái)溝通。技術(shù)原因造成用戶(hù)流失,是每個(gè)工程師都不愿意看到的事情。
為什么很難?
因為音視頻通話(huà) = 音視頻處理 + 網(wǎng)絡(luò )傳輸
而公共互聯(lián)網(wǎng)不是為了實(shí)時(shí)通信設計的。
- 協(xié)議方面:tcp有無(wú)法忍受的延時(shí),udp有丟包延時(shí)抖動(dòng)亂序。
- 政治方面:各個(gè)國家出口光纜屈指可數,帶寬也有嚴格限制。
- 商業(yè)方面:由于成本原因,跨運營(yíng)商的網(wǎng)絡(luò )傳輸慘不忍睹。
- 用戶(hù)設備:無(wú)線(xiàn)路由器從802.11G開(kāi)始才支持實(shí)時(shí)通信模式;多個(gè)路由器使用相同的頻段會(huì )造成信號污染;2G網(wǎng)絡(luò )上行帶寬只有20kbps。
- 架構方面:公共網(wǎng)絡(luò )每個(gè)節點(diǎn)都不可靠,后臺工程師熟悉的mtr命令可以分析哪個(gè)路由節點(diǎn)丟包高,如果此時(shí)正在傳輸音視頻,質(zhì)量必然受到影響。
要在這樣一個(gè)公共互聯(lián)網(wǎng)上傳輸音視頻數據,卻沒(méi)有做任何網(wǎng)絡(luò )傳輸的工作,不遇到問(wèn)題的話(huà)可以買(mǎi)彩票了。
網(wǎng)絡(luò )傳輸要怎么搞?老師沒(méi)講過(guò)、網(wǎng)上搜不到,是不是有一種深深的無(wú)力感。
干貨開(kāi)始了,聲網(wǎng)Agora.o怎么搞?
音頻傳輸與視頻傳輸有很多相同點(diǎn),又有一些不同點(diǎn)。我們先從音頻開(kāi)8,在整個(gè)音頻傳輸解決方案基礎之上,再來(lái)研究視頻的差異點(diǎn)。
先看下邊一個(gè)工程師小明的故事:
- 老大在測試demo的時(shí)候來(lái)找小明:剛才聲音卡成翔。小A這時(shí)候如果一臉懵B狀基本要跪,如果拿出數據解釋說(shuō)在30秒到50秒之間丟包造成,效果好很多。所以首先需要通過(guò)網(wǎng)絡(luò )參數來(lái)評估語(yǔ)音質(zhì)量 —— 質(zhì)量評估
- 老大體驗了幾次卡頓之后想起來(lái)問(wèn)小明,其他用戶(hù)質(zhì)量怎么樣?小A拿出數據說(shuō)我們只有2%的用戶(hù)遇到您這樣卡頓 —— 數據統計
- 利用前邊幾個(gè)工具,小明找到了影響質(zhì)量的原因1:聯(lián)通用戶(hù)和電信用戶(hù)通話(huà)時(shí)丟包大。小明搞了個(gè)多線(xiàn)服務(wù)器,聯(lián)通用戶(hù)接聯(lián)通線(xiàn)路,電信接電信 —— 智能接入
- 隨著(zhù)用戶(hù)擴張到海外,小明發(fā)現電信用戶(hù)和美國用戶(hù)通話(huà)時(shí)丟包大,沒(méi)有一邊電信一邊美國這種多線(xiàn)服務(wù)器,小明發(fā)現通過(guò)日本轉發(fā)過(guò)去就不丟包了 —— 智能路由
- 小明覺(jué)得智能接入加上智能路由,可以媲美網(wǎng)絡(luò )專(zhuān)線(xiàn)的質(zhì)量了,所以得意地起了個(gè)名字叫做虛擬專(zhuān)線(xiàn)
- 現在抱怨的用戶(hù)明顯少了很多,還剩下一些自己網(wǎng)絡(luò )不給力的用戶(hù)。用戶(hù)x一直用2G,用戶(hù)y在公司里很多WIFI有信號污染,需要 ——丟包對抗
- 用戶(hù)報虹橋機場(chǎng)打不通,小明過(guò)去抓了個(gè)包發(fā)現公共場(chǎng)所WIFI有很多限制 —— 網(wǎng)絡(luò )可用性
- 用戶(hù)沒(méi)問(wèn)題了,但各種互聯(lián)網(wǎng)公司事件讓小A擔心自己服務(wù)器電源也被挖掘機鏟斷 —— 后臺高可用
這些東西,具體怎么搞?
聲網(wǎng) Agora的首席音視頻架構師 孫雨潤,在上周六segmentfault進(jìn)行了相關(guān)的專(zhuān)題演講。他憑借出精彩的演講,受到現場(chǎng)觀(guān)眾的熱烈追捧。

錯過(guò)了怎么辦?
2016年4月21~23日,QCon全球全球軟件開(kāi)發(fā)大會(huì )上,雨潤會(huì )再次奉上精彩演講。