1117

作為音視頻通信領域的網紅,webRTC近幾年一直都在刷存在感。

相關數據顯示,每周僅在Chrome瀏覽器上就會有超過15億分鐘的WebRTC音視頻通話。

1118

自從webRTC誕生以來,80%的瀏覽器都開始支持它。有數據顯示,2017年~2021年期間,WebRTC市場將以34.37%的年均復合增長率增長。

到底什么是webRTC?它能用來做什么?有什么特點?今天這篇文章,就讓小保給大家做一個簡單的科普。

webRTC英文全稱為 Web Real-Time Communication,網頁即時通信,是個支持網頁瀏覽器實時語音、視頻對話的API。

簡單來講,就是程序員在網頁代碼里面加入這個它,就可以在網頁上實現即時音視頻通話。 

一般人會問,這有什么厲害?平時互動直播、玩狼人殺、KTV都用的是這個技術吧?

1119

▲某在線抓娃娃機APP

但如果你對網絡通信有了解,就不會這么想了,不僅非常厲害,webRTC還是一項劃時代的創新。

為了方便大家更好理解一門技術,我們得先講講webRTC的前身——VoIP,也就是大家俗稱的IP電話。

1120

一、神壇上的老大哥VoIP

IP地址這個概念,對于大家來說應該不太陌生,而VoIP(Voice over Internet Protocol)就是基于IP地址的一種通話技術。

這項技術最有代表性的當屬Skype、QQ這類軟件,只要下載客戶端,你就可以和朋友語音視頻通話。記得在十多年前,用QQ和朋友聊視頻還是件新鮮的事情。可以說,VoIP技術奠定了音視頻通信的基礎。

1121

但是,VoIP有很大的局限:非標準化且使用方式繁瑣。就像你要去拜訪一個貴族朋友,得懂得很多禮儀規矩,你才能和他有共同話題。

當時Skype、QQ基本上都采用私有協議,我必須得下載這些廠商的客戶端,才能夠使用他們的音視頻通話服務。

如果我的朋友用Skype,我用QQ,那么我們雙方是不能相互通話的。

而且,如果你想在瀏覽器上面和朋友視頻聊天,要么用Flash,要么得下各種各樣的插件。Flash的音質和畫質都很差,也存在很多漏洞,現在就連Adobe和chrome都已經準備拋棄它了。

1122

如果你要使用插件,維護成本也很高,不同瀏覽器還要專門開發不同版本的插件,每更新一個版本的插件,程序員就要為好多個瀏覽器定制,開發成本高。

2011年,webRTC帶著改造舊世界的理想,降臨了。

二、webRTC是如何上位的?

webRTC跟其它的VoIP協議不同,主要在于下面3個方面:

開源,免費,而之前的VoIP協議很多都要授權費;

基于瀏覽器,不需要裝插件,只要調用就可以實現音視頻互動功能;

被納入了HTML5標準,主流瀏覽器全面支持

開源這一點,對創業公司來說就是救命稻草。這意味著創業公司不需要承擔高昂的專利費,可以花更多預算放在提高用戶體驗、創新內容等方面,也推動了整個行業的發展。

因為統一了標準,對于用戶來說,不用下APP和客戶端,直接用瀏覽器、小程序就可以發起語音視頻通話,非常方便。無論你的設備是iPad、PC、手機(iOS/android),都可以使用。

所以為什么課程直播、在線狼人殺、抓娃娃機、互動答題這些應用在這幾年非常火熱,大部分都要歸功于webRTC的普及。

這套標準激活的是人與人,物與物之間信息互聯,也就意味著這是全新應用場景的底層技術保障。

那么,webRTC到底是怎么實現的呢?

在開始之前,想讓大家思考一個問題,2個處于不同網絡環境的瀏覽器,要實現語音/視頻通訊,難點在哪?

至少要解決下面兩個問題:

1.彼此了解對方支持的媒體格式、最大分辨率等信息

比如你的朋友是美國人,他只會說英語,你給他發微信、寫郵件肯定只能用英語。在網絡通信之中,就是要找到大家共同的“語言”(格式)。

比如小紅的瀏覽器支持MPEG1/2、H264等編碼格式,而小剛支持MPEG4、H264。如果要保證雙方能夠正常視頻聊天,最簡單的辦法就是選他們的交集H264。

1123

2.彼此要了解對方的網絡情況,才可以找到一條通訊的鏈路

我們平時出去玩,經常會打開導航看路況和路線。在互聯網世界中,要建立雙方的鏈接,也需要找到一條雙方能同行的鏈路。

比如小紅有公網IP和192網段的內網環境,而小剛沒有公網,只有192、198開頭的兩個內網地址。他們就可以用192網段來通信。

1124

那小紅和小剛是怎么建立鏈接的呢?

通過一個中間商信令服務器(signal server)(但是它不賺差價)即可。

1125

大家可以看到,整個網絡架構的軀干,主要還是在于信令服務器(Signaling Channel),它擔任了兩者之間中繼站的一個角色。

1126

通過以上步驟,小紅和小剛的瀏覽器就建立起了鏈接。

但實際上的傳輸過程會更復雜,涉及到NAT內網穿透、音視頻傳輸、STUN/TURN/ICE協議等知識,有機會小保再給大家詳細講解。

三、谷歌爸爸與webRTC的蜜月故事

不得不說,要是沒有壕氣十足的谷歌爸爸,這項劃時代的技術可能很難普及。

1127

2010年,谷歌用6820萬美刀(折合人民幣4億8千萬)收購了Global IP Solutions(GIPS)公司。次年6月公布webRTC開源項目。

谷歌的意思很明確:我買了GIPS,大家隨便用,不收錢。

不得不嘆服,有錢就是任性。如果谷歌爸爸如果不開源GIPS的技術,坐著收專利費,1~2年即可回本,3~5年就能躺賺幾個億,大步邁入小康社會。

10年前,QQ使用的就是GIPS的語音引擎,一般這種引擎會根據客戶端數目來定價,按年結算。當時QQ的用戶至少也有好幾億,按照每人1元算,一年GIPS就能收到幾個億的專利費。

谷歌爸爸放著這么多錢不賺,圖個啥?有句話這么說:世界上有兩種人,制定規則的人和服從規則的人,而谷歌明顯是想做前者。

事實證明,谷歌爸爸的確眼光獨到。靠著開源webRTC,谷歌不僅成為了技術標準的制定者之一,還紛紛獲得主流瀏覽器廠商支持。隨后,webRTC被部署到數百萬的終端設備中。

時間來到了2017年11月,公布webRTC開源 6 年后,W3C WebRTC 1.0 草案正式定稿。

Chrome、Firefox、Safari、Edge 等主流瀏覽器都已經支持 WebRTC,瀏覽器之間無插件化的音視頻互通已經成為一種可能。

四、webRTC面臨的挑戰

人無完人,webRTC在使用的過程中,多少也會出現問題:

1.傳輸質量難以保證。

webRTC使用的是點對點(P2P)傳輸,雖然可以節省中間服務器資源,但是很難保證跨國及跨運營商之間通信的質量。

(不了解P2P的小伙伴,可以看看小保之前的文章:2684億狂歡背后,是它在讓你流暢剁手

1128

雖然有優秀的點對點質量控制算法,但在錯綜復雜的網絡環境下,表現也很難令人滿意。

2.實現多人場景應用需二次開發。

webRTC是為1對1通信通信場景設計,如果要實現1對多的通信,還需要借助服務端的方案。

3.在移動端表現不佳。

這點在安卓上比較明顯,如果不針對不同機型做適配,很難有統一的用戶體驗。

五、webRTC的未來怎么走?

未來在音視頻通信領域,webRTC會成為業界主流。

1.設備兼容性更強

2017年之前,webRTC一直都缺少測試工具。就在2017年年底,谷歌就推出了KITE,幫助程序員測試不同瀏覽器之間的互通性。

1129

下一步會提供更完備的測試套件,不僅可以幫助開發者測試 WebRTC 應用在 Web 端、Native 端的互通性與體驗,還有助于保證各廠商瀏覽器 WebRTC 接口功能的一致性,并逐步完善 WebRTC 缺失的功能。

2.QUIC技術逐漸起步

對于webRTC來說,QUIC可以讓通信速度更快,減少卡頓,還可以替代之前的舊協議。但目前支持QUIC的瀏覽器只有 Chrome 和 Opera,推廣普及仍需要時間。

3.應用場景更多元

2018年,音視頻通信已經不僅限于社交軟件的應用。webRTC普及使得教育直播、在線醫療、企業培訓等垂直場景應用蓬勃發展。

1130

2018年底,谷歌宣布Project Stream,使用串流技術在Chrome上玩《刺客信條:奧德賽》。隨后,webRTC團隊成員轉發了這個測試頁面。

可以確信的是,這個項目使用了部分webRTC的技術。這意味著什么?就是我可以拿起身邊的iPad、手機,就可以在網頁上面玩幾千元PC才可以運行的3A大作。(比如荒野大鏢客2、GTA等等)

在將來,我們可以想象一下。在基于webRTC構建的世界中,所有終端建立連接的過程是統一的,只要終端之間開放了通道,就可以建立實時通信。

比如,微信與WhatsApp能建立視頻通話,就像你在中國用手機,給美國朋友家里的座機打電話。甚至你還可以用微信連接到汽車的屏幕,提前放音樂、開空調。

在實時音視頻通信的場景中,保利威視頻云能夠根據不同需求,提供一站式直播、點播解決方案,幫助企業降本增效,讓視頻創造價值。

保利威將繼續在音視頻領域不斷鉆研,為不同領域的客戶提供創新、優質的解決方案,為行業的發展貢獻自己的一份力量。

 


參考文獻:

[1]嚴 琦,安 崗,杜杏蘭,邴 建.(2015).WebRTC技術漫談和對運營商的影響

[2]屈振華,李慧云,張海濤,龍顯軍.(2012).WebRTC 技術初探

[3]JackJiang2011.(2018).了不起的WebRTC:生態日趨完善,或將實時音視頻技術白菜化