簡單地說,WebRTC是一種在瀏覽器和移動應用程序之間提供點對點通信的技術(shù)。它被稱為網(wǎng)絡實時通信,是指開源項目,允許音頻、視頻和數(shù)據(jù)的傳輸。
對于WebRTC開發(fā)人員來說這是一項簡單而復雜的技術(shù)。簡單性的本質(zhì)歸結(jié)為易于實現(xiàn)。可以使用5到10行代碼來組織兩個瀏覽器之間的點對點視頻通信。
不過,當我們與技術(shù)打交道時,總是會有一個“但是”。因為作為后端開發(fā)人員必須確保解決方案在不同的網(wǎng)絡中工作。
什么是WebRTC?
作為谷歌于2011年發(fā)布的一個開源項目,WebRTC提供了基于API的web瀏覽器和移動應用程序之間的通信,包括音頻、視頻和數(shù)據(jù)的傳輸。消除了對本地插件和應用程序安裝的需求,使這些連接變得更加友好,并得到了所有主要瀏覽器和移動操作系統(tǒng)的支持。
在過去的幾年中,WebRTC在科技界被廣泛采用。Facebook,Amazon和Google都是實施WebRTC來使其Web應用程序更快,更可靠,更安全的重要技術(shù)公司。
WebRTC特性也提供了現(xiàn)成的解決方案,可以很容易地與其他軟件集成。
正如前面提到的,WebRTC的關(guān)鍵特征是它是一種簡單而復雜的技術(shù)。簡單性的本質(zhì)歸結(jié)為易于實現(xiàn),只需5到10行代碼就可以組織兩個瀏覽器之間的點對點視頻通信。該技術(shù)的復雜性與WebRTC的特殊性有關(guān),它必須適應不同的瀏覽器,如果不能正確工作,則很難進行配置。此外,為了獲得所需的結(jié)果,也應該了解STUN、TURN和NAT。
STUN是一套標準化的方法,包括一種網(wǎng)絡協(xié)議,用于在實時語音、視頻、消息和其他交互式通信應用中穿越網(wǎng)絡地址轉(zhuǎn)換(NAT)網(wǎng)關(guān)。
當我們需要連接兩個沒有外部IP地址的瀏覽器時,必須使用STUN。兩者都連接到服務器并找出其IP。瀏覽器交換它們相互關(guān)聯(lián)的端口。
TURN做了幾乎相同的事情。它通過自身發(fā)送流量。這個流量沒有以任何方式被修改或改變。這種方法允許我們在TCP(比UDP更可靠但更慢的協(xié)議)上工作時連接兩點。值得注意的是,大約15%的呼叫沒有TURN就不能發(fā)出。
現(xiàn)在,你已經(jīng)對WebRTC這項技術(shù)有了一些了解。此外,我們將概述該技術(shù)的優(yōu)缺點,WebRTC解決方案的例子,以及高要求的WebRTC應用程序。默認情況下,這些應用程序基于點對點通信。如果我們需要組織群呼和直播,就必須使用作為協(xié)議客戶端的服務器。
WebRTC如何工作?
WebRTC的主要重點是提供參與者之間的實時音頻和視頻通信,參與者使用Web瀏覽器開始對話,彼此定位并繞過防火墻。
WebRTC利用嵌入在瀏覽器中的JavaScript API和HTML5。WebRTC應用程序的典型功能如下:
- 發(fā)送和接收流音頻和視頻。
- 檢索使用WebRTC API向其他客戶端發(fā)送和接收數(shù)據(jù)所需的網(wǎng)絡配置數(shù)據(jù),例如IP地址,應用程序端口,防火墻和NAT(網(wǎng)絡地址轉(zhuǎn)換器)
- 打開/關(guān)閉連接并報告錯誤。
- 傳輸媒體數(shù)據(jù),例如圖像分辨率和視頻編解碼器
為了發(fā)送和接收數(shù)據(jù)流,WebRTC提供了以下可在Web應用程序中使用的API:
- RTCPeerConnection用于音頻和視頻傳輸,加密和帶寬配置
- RTCDataChannel用于傳輸通用數(shù)據(jù)
- MediaStream,用于從數(shù)碼相機,網(wǎng)絡攝像頭,麥克風或共享桌面等設備訪問多媒體數(shù)據(jù)流
Internet工程任務組和Web實時通信工作組目前正在開發(fā)一套在軟件中使用WebRTC的標準。
WebRTC技術(shù)的優(yōu)缺點
WebRTC的主要優(yōu)點是:
- 有適用于所有平臺的實現(xiàn)。
- 使用現(xiàn)代音頻和視頻編解碼器可促進高質(zhì)量的通信。
- 安全和加密的DTLS和SRTP連接。
- 有一個內(nèi)置的內(nèi)容獲取機制(桌面共享)。
- P2P =端到端加密。
- 瀏覽器直接同意。
- 基于HTML5和JavaScript實現(xiàn)管理界面的靈活性。
- 開源。
- 多功能性:只要瀏覽器支持WebRTC,基于標準的應用程序就可以在任何OS上正常運行。
WebRTC的條件缺點是其維護費用高,這與需要強大的服務器有關(guān)。。
正如文章中已經(jīng)提到的,Web實時通信的基礎是視頻聊天。包括音頻和視頻通話、數(shù)據(jù)共享在內(nèi)的服務是WebRTC技術(shù)的主要應用類型,最著名的例子是WhatsApp、谷歌Hangouts和Facebook Messenger。但是如果我們把所有的業(yè)務案例和WebRTC的例子拼湊在一起,我們會發(fā)現(xiàn)有很多使用領(lǐng)域。
該技術(shù)在遠程醫(yī)療、監(jiān)控和遠程監(jiān)控、在線教育、物聯(lián)網(wǎng)、虛擬現(xiàn)實游戲、流媒體、語音通信網(wǎng)絡游戲、應急響應等方面都有很高的要求。
WebRTC的未來:趨勢和預測
根據(jù)市場研究報告,到2026年,全球WebRTC市場規(guī)模預計將達到165.705億美元。讓我們回顧一下,2016年使用WebRTC的產(chǎn)品的全球市場價值為107億美元。WebRTC的轉(zhuǎn)折點出現(xiàn)在2017年,當時微軟Edge和iOS Safari 11開始支持它。
目前,谷歌致力于網(wǎng)絡實時通信的發(fā)展。因此,WebRTC的未來是很有前景的。通過評估谷歌在該技術(shù)上的投資,很容易驗證這一點。所有這些都針對代碼優(yōu)化以及功能集的擴展或改進。
2021-2022年與WebRTC相關(guān)的主要趨勢是:
- 作為W3C標準的WebRTC將迅速發(fā)展。
- WebRTC提供的會議規(guī)模將會增加,這將影響解決方案的復雜性。值得注意的是,會議中有1000個用戶是一個真正的挑戰(zhàn),需要新的架構(gòu)。
- 其他的工具,如背景模糊和噪聲抑制之類已經(jīng)開發(fā),并將在未來改進,并且這些工具與Chrome中的WebRTC實施相關(guān)。
- 與用戶隱私和應用程序安全相關(guān)的大量活動將被完成。
- VP9和AV1編解碼器將實現(xiàn)現(xiàn)代化。
WebRTC的未來與新市場中出現(xiàn)的技術(shù)有關(guān)。而且,只要WebRTC是W3C標準,任何人都可以影響其發(fā)展,這意味著廣闊的前景。
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】
原文地址:https://developer.51cto.com/art/202104/660573.htm