在剛剛落幕的 WWDC17 上,蘋果為我們帶來了一個不小的驚喜 —— 其瀏覽器內核 WebKit 將正式支持 WebRTC,而未來基于 WebKit 內核的蘋果瀏覽器,比如 macOS High Sierra、iOS 11 中的 Safari 瀏覽器和 Safari 技術預覽版 32,都將使用到 WebRTC 技術。
此消息一出便引得無數 WebRTC 開發者為之興奮,更表示其將改變當前的 P2P 視頻通話技術格局。這是為什么呢?在此,我們需要先簡單地了解一下 WebRTC,其全稱為 Web Real-Time Communication(網絡實時通信),是一項能夠讓瀏覽器支持實時語音會話或視頻對話的技術。這一技術前身為 GIPS,本是由 Global IP Solutions 公司研發,2010 年,Google 以 6820 萬美元的價格將該公司收購并將 GIPS 更名為 WebRTC,次年 5 月正式將其開源。
彼時,我們所能想到的只是因為 Google 的推動,這樣一項能夠在瀏覽器內部進行實時音頻和視頻通信的技術讓 Web 中的實時通訊成為可能。但同時,也有諸多開發者在質疑 WebRTC 是否會曇花一現,畢一直以來,雖然 Chrome、Firefox、Opera 等市面上主流的瀏覽器均已加入 WebRTC 大本營,但蘋果的 Safari 和微軟的 IE 卻都不支持。
如今,Safari 即將在新版本中集成 WebRTC,其對于整個實時通信領域而言,究意味著什么?對于 WebRTC 開發者來說,又將有著怎樣的改變?我們帶著種種疑問,請教了網絡實時通信領域的專家 —— 聲網 Agora.io 創始人兼 CEO 趙斌,從 WebRTC 的發展歷程談起,詳細剖析 WebKit 終于支持 WebRTC 將帶來怎樣的變化。
在 2011 年以前,瀏覽器之間要想實現實時通信,需要私有技術,其中大部分都是通過插件和客戶端來安裝使用。對于許多用戶而言,插件的下載、安裝和更新是一個復雜、繁瑣和容易出錯的操作。而對于開發人員來說,插件的調試、測試、部署、錯誤修復和維護同樣困難重重,且不提還涉及到一些受版權保護的技術,整合相當復雜。再者,很多時候,服務提供商很難說服用戶去安裝插件。
但這一兩頭吃力還不討好的局面就這樣被 Google 將 WebRTC 項目開源所打破。2011 年,WebRTC 基于 BSD 協議開源,同年,W3C 啟動 WebRTC 計劃,讓 WebRTC 成為了 HTML5 標準的一部分(目前,該規范還在開發中)。
由此,瀏覽器廠商將 WebRTC 內建在瀏覽器中,使得 Web 應用研發人員能夠通過 HTML 標簽和 JavaScript API 即可實現 Web 音視頻通信功能。在 WebRTC 的官網上,Google 如此表述道:
互聯網成功的關鍵因素之一,便是一些如 HTML、HTTP 和 TCP/IP 等的核心技術是開放和標準化的。目前,在瀏覽器實時通信領域還沒有免費、高質量、完整的解決方案,而 WebRTC 正是這樣的技術。
該技術包含了使用 STUN、ICE、TURN、RTP-over-TCP 的關鍵 NAT 和防火墻穿透技術,并支持代理。通過瀏覽器,WebRTC 把通訊雙方的信令狀態直接映射到 PeerConnection 里面來抽象信令處理,這樣,開發人員按不同的應用場景選擇不同的會話協議,比如 SIP、XMPP/Jingle 等。截至目前,該技術的使用已經超過了 8 年,集成了佳的音頻、視頻引擎,并被部署到數以百萬的終端中,同時這些技術 Google 不收取任何費用。
從初的為了解決瀏覽器上視頻通話而誕生,WebRTC 已經發展到可以實現在瀏覽器之間進行任意數據的通信。其中,Chrome、Firefox、Opera 對于 WebRTC 的支持已較為成熟,而微軟于 2014 年提出了 ORTC(對象 RTC,也有人稱之為 WebRTC 1.1),希望在對 Google 的 WebRTC 提案稍作修改的基礎上,也提供支持。目前,新版本的 Microsoft Edge 已經支持 ORTC。
而對于蘋果官方終于宣布“WebRTC 將在 Safari 11 上支持”,趙斌如此評價道:“目前,WebRTC 已經有了 1.0 版本,暫時還是草案。但是我們可以看到的是,WebRTC 在網絡抗丟包處理、視頻引擎(比如 H.264 Codec 支持成熟度)等方面,還是需要加強的。1.0 之后的 1.1 版本,考慮到了和 ORTC 的結合,讓 WebRTC 可以在微軟瀏覽器上實現,這是 Google 和微軟同時推動的階段性進展。實際上,Google 的 WebRTC 從一開始的計劃就是能支持所有的主流瀏覽器。之前大的障礙是微軟瀏覽器和蘋果瀏覽器,但是通過 Google 的推動,這些實際上都在發生變化。而 Safari 在 ios 11 中將支持 WebRTC,既是行業里后一個重要的瀏覽器加入這一潮流,也是這一進程的重大勝利。這在 WebRTC 的發展上是里程碑性的事件,將會極大地推動 RTC 技術在各種應用網站上的普及。當然,目前蘋果對 WebRTC 的支持還比較粗糙,需要更多的時間成熟,并解決互通上的更多問題。微軟則還需要在標準的一致性上參與行業的討論,縮小和拉近在互通性方面的差距。”
一直以來,WebRTC 開發者總被一個無法逃避的陰影所籠罩,那就是來自用戶的“什么時候微軟和蘋果的瀏覽器支持呢?”的疑問,每每此時,卻只能給出讓用戶使用 Chrome 和 Firefox 的解決方案。而在移動端,事情變得更加復雜,因為在 iOS 上,使用原生是的辦法,也由此增加了 Swift/Objective-C 的開發成本,盡管 React Native 能夠構建支持 WebRTC 的 Android 和 iOS 應用讓這一狀態有所改善,但卻無法從根本上解決問題。
而隨著支持 WebRTC 的 iOS 版 Safari 的到來,意味著開發者們可以提供一個在 Web 端、移動端均可運行的響應式網站來實現 WebRTC 通話。對于開發者個人而言,也無需為了完成項目而絞盡腦汁地成為 objective-c、swift 或 react Native 方面的專家,通過 javascript 即可實現這樣一個精細復雜的網絡電話應用,由此開發成本將得到大幅降低。
在談到 WebRTC 移動端實現時,趙斌表示:“在 Safari 支持 WebRTC 后,過去只能在諸如 Chrome 瀏覽器之間實現的音視頻通話,現在在 Safari 以及 Chrome 與 Safari 之間實現了,其影響一定是積極的。可以預見,很多網站及開發者將會更加認真地考慮將這類功能添加至網站及應用中。”
盡管 WebRTC 應用已經如此廣泛,但其也并非完美,比如在穩定性、P2P 連接率、呼叫成功率、網絡抗丟包性能等諸多方面,都還有很大的提升空間。所以到目前為止,大規模單純使用 WebRTC 成功的產品還是鳳毛麟角,且幾乎都是在網絡和設備性能非常成熟的美國,比如 Facebook Messenger、Google Hangouts。
且 WebRTC 是基于瀏覽器上的技術,大部分都是在瀏覽器中應用。而使用 WebRTC 在移動端上進行開發,差別還是很大。雖然可以實現,但門檻會很高,難度也會很大。對絕大多數開發者來說,要用 WebRTC 在移動端實現良好體驗,不是一件容易的事情,會遇到非常多的坑。在進行 WebRTC 開發之前,開發人員及其團隊需要根據自身的情況,來決定是自主開發還是使用第三方 SDK。
對此,趙斌與我們分享了他的經驗:“實時通信是一項實現功能容易,但做好很難的技術。我曾在 WebEx 和 YY 工作將近 20 年,非常清楚 RTC 技術的坑。也知道對于一個開發者而言,要自己在 App 和瀏覽器中實現實時音視頻通話,是非常麻煩且累人的事情。很多開發者容易掉進的坑,就是忘了如果想要用好實時通信技術,歸根結底還是在于使用過程中的質量保障,而非研發時寫的那些功能代碼。”
也正因如此,趙斌和他的團隊對 WebRTC 在質量保障方面進行了擴展,比如為了解決 WebRTC 在弱網絡環境下抗丟包、通話連通率等問題,在全球部署了虛擬通信網 SD-RTN?(Software Defined Real-time Network),有近 100 個數據中心,同時,為開發者提供一個極簡 SDK,幫助其在任何 App、網站上,都能實現高質量的音視頻通話、全互動直播。據趙斌介紹,目前這款 SDK 已經被嵌入到了超過 5 億的終端設備上,僅僅花了1年左右的時間,全球范圍內對于實時通信質量保障的強烈需求可見一斑。
WebRTC 一直是推動 RTC 實時通信技術發展的主要力量,讓實時通信技術能夠在互聯網很多行業里得到廣泛應用。而近兩年來,我們也看到了實時通信技術在很多領域正在驅動非常多的創新應用場景,比如去年大熱的互動直播,主播與觀眾隨時連麥互動、不同房間的主播連麥聊天等,以及當下正在流行的狼人殺,包括語音、視頻甚至是輪麥視頻狼人殺,這些場景都是基于 RTC 創造出來的。另外,在 AR/VR 和 AI 等新技術領域,也有諸多結合,如視頻通話時的動態濾鏡貼紙、戴 VR 眼鏡和虛擬世界里的朋友聊天等等。當然,對于傳統行業,比如企業協作、金融、客服等領域,都有可能借助 RTC 技術打破地域界限,讓更多人可以做居家客服、居家辦公 SOHO 等。
“我們認為,隨著 WebRTC被幾大瀏覽器統一支持,應用的成長和發展是必然的。未來,無論在怎樣的場景下,實時通信都會成為人們的一個默認選擇,無限縮短人與人之間的距離。而用戶會越來越多地了解和熟悉這種使用模式,開發者也會越來越多地理解其中的門檻,以及質量保障在實時通信領域的價值。”后,趙斌如此總結道。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。