WebRTC源碼級深度解析,進階大廠高級音視頻開發(fā)者不是你一個人在學(xué)

具體內(nèi)容放在我的首頁動態(tài)介紹了

簡單地說,WebRTC是一種在瀏覽器和移動應(yīng)用程序之間提供點對點通信的技術(shù)。它被稱為網(wǎng)絡(luò)實時通信,是指開源項目,允許音頻、視頻和數(shù)據(jù)的傳輸。
對于WebRTC開發(fā)人員來說這是一項簡單而復(fù)雜的技術(shù)。簡單性的本質(zhì)歸結(jié)為易于實現(xiàn)??梢允褂?到10行代碼來組織兩個瀏覽器之間的點對點視頻通信。
不過,當(dāng)我們與技術(shù)打交道時,總是會有一個“但是”。因為作為后端開發(fā)人員必須確保解決方案在不同的網(wǎng)絡(luò)中工作。
什么是WebRTC?
作為谷歌于2011年發(fā)布的一個開源項目,WebRTC提供了基于API的web瀏覽器和移動應(yīng)用程序之間的通信,包括音頻、視頻和數(shù)據(jù)的傳輸。消除了對本地插件和應(yīng)用程序安裝的需求,使這些連接變得更加友好,并得到了所有主要瀏覽器和移動操作系統(tǒng)的支持。
在過去的幾年中,WebRTC在科技界被廣泛采用。Facebook,Amazon和Google都是實施WebRTC來使其Web應(yīng)用程序更快,更可靠,更安全的重要技術(shù)公司。
WebRTC特性也提供了現(xiàn)成的解決方案,可以很容易地與其他軟件集成。
正如前面提到的,WebRTC的關(guān)鍵特征是它是一種簡單而復(fù)雜的技術(shù)。簡單性的本質(zhì)歸結(jié)為易于實現(xiàn),只需5到10行代碼就可以組織兩個瀏覽器之間的點對點視頻通信。該技術(shù)的復(fù)雜性與WebRTC的特殊性有關(guān),它必須適應(yīng)不同的瀏覽器,如果不能正確工作,則很難進行配置。此外,為了獲得所需的結(jié)果,也應(yīng)該了解STUN、TURN和NAT。
STUN是一套標準化的方法,包括一種網(wǎng)絡(luò)協(xié)議,用于在實時語音、視頻、消息和其他交互式通信應(yīng)用中穿越網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)網(wǎng)關(guān)。
當(dāng)我們需要連接兩個沒有外部IP地址的瀏覽器時,必須使用STUN。兩者都連接到服務(wù)器并找出其IP。瀏覽器交換它們相互關(guān)聯(lián)的端口。
TURN做了幾乎相同的事情。它通過自身發(fā)送流量。這個流量沒有以任何方式被修改或改變。這種方法允許我們在TCP(比UDP更可靠但更慢的協(xié)議)上工作時連接兩點。值得注意的是,大約15%的呼叫沒有TURN就不能發(fā)出。
現(xiàn)在,你已經(jīng)對WebRTC這項技術(shù)有了一些了解。此外,我們將概述該技術(shù)的優(yōu)缺點,WebRTC解決方案的例子,以及高要求的WebRTC應(yīng)用程序。默認情況下,這些應(yīng)用程序基于點對點通信。如果我們需要組織群呼和直播,就必須使用作為協(xié)議客戶端的服務(wù)器。