WebRTC 現已成為 W3C 和 IETF 標準

簡要介紹 WebRTC 的記錄、架構、用途和未來。

惠布.克林霍特 (Huib Kleinhout)
Huib Kleinhout

定義網頁標準的程序相當長,以確保各瀏覽器的實用性、一致性和相容性。如今,W3C 和 IETF 已經完成在疫情期間,可能的其中一項最重要的標準:WebRTC。

記錄

WebRTC 平台可為瀏覽器、行動應用程式和電腦版應用程式提供即時通訊功能,通常用於視訊通話。這個平台包含一套 完整的技術和標準Google 於 2009 年創立 WebRTC,為 Adobe Flash 和桌面應用程式無法在瀏覽器中執行的替代方案,上一代瀏覽器式產品是以授權的專屬技術為基礎。而這項技術開發了許多產品,包括 Hangouts。接著,Google 便收購了獲得該項技術授權的公司,並將其做為開放原始碼 WebRTC 專案。這個程式碼集已整合至 Chrome,且大多數使用 WebRTC 的應用程式均會使用此程式碼集。與 Mozilla、Microsoft、Cisco 和 Ericsson 等其他瀏覽器廠商及業界領導者攜手合作,W3C 和 IETF 都開始將 WebRTC 標準化。2013 年,Mozilla 和 Google 示範了不同瀏覽器之間的視訊通話。隨著這個標準的演變,許多架構討論導致不同瀏覽器之間的實作差異,並導致相容性和互通性方面的挑戰。這些異議大多因在過去幾年間已敲定而最終落成,WebRTC 規格現在隨附一整組平台測試和工具,可用於處理相容性,且瀏覽器大幅調整了實作方式。這也帶來許多艱鉅的挑戰,網頁程式開發人員必須不斷採用不同的瀏覽器實作和規格變更服務。

架構與功能

RTCPeerConnection API 是 WebRTC 規格的核心。RTCPeerConnection 會處理在不同端點上連結兩個應用程式,以便使用點對點通訊協定進行通訊。PeerConnection API 會與 getUserMedia 密切互動以存取相機和麥克風,以及用於擷取畫面內容的 getDisplayMedia。WebRTC 可讓您傳送及接收包含音訊和/或影片內容的串流,以及透過 DataChannel 任意二進位資料的串流。處理、編碼及解碼音訊和影片的媒體功能,提供了所有 WebRTC 實作的核心。WebRTC 支援各種音訊轉碼器,不僅最常用的 Opus 是目前最常用的元件,您必須實作 WebRTC,才能同時支援 Google 的免費 VP8 影片轉碼器和 H.264 處理影片。WebRTC 連線一律會加密,該連線是透過以下兩個現有通訊協定完成:DTLS 和 SRTP。WebRTC 高度仰賴現有的標準與技術,包括視訊轉碼器 (VP8、H264)、網路週遊 (ICE)、傳輸 (RTP、SCTP) 和媒體說明通訊協定 (SDP)。這項整合透過超過 50 個 RFC 來整合。

用途:只要幾毫秒就能完成

WebRTC 廣泛用於具時效性的應用程式,像是遠距手術、系統監控和自動駕駛自動駕駛車輛的遠端控制,以及在 UDP 上建構的語音或視訊通話無法進行緩衝處理。幾乎所有公司 (例如 Google、Facebook、Cisco、RingCentral 和 Jitsi) 提供的瀏覽器視訊通話服務都會使用 WebRTC。Google Stadia 和 NVIDIA GeForce NOW 用 WebRTC 將遊戲過程從雲端串流至網路瀏覽器,且不會察覺到延遲。

疫情著重在提升視訊通話效能

過去一年來,由於瀏覽器內部的視訊通話量增加,WebRTC 發現讓 Chrome 的使用量成長了 100 倍。在許多人在疫情期間,視訊通話已成為生活中不可或缺的一環,因此瀏覽器廠商已開始將視訊通話所需的技術最佳化。當員工和學生開始在家工作和學習時,要求大型會議的資源和視訊會議效果越來越常見,因此這點尤其重要。過去一年來,Chrome 對視訊通話的電量提升高達 30%,即使用量相當龐大,也能提供更完善的最佳化功能。Mozilla、Apple 和 Microsoft 在疫情期間導入 WebRTC 方面,都已大幅改善,尤其要確保遵循目前正式標準。

WebRTC 的未來

雖然 WebRTC 現已達到 W3C 標準,但持續改善。WebRTC 和網路瀏覽器即將推出新的影片轉碼器 AV1,最多可節省 50% 頻寬。持續改善開放原始碼程式碼集,預計將進一步縮短延遲時間,同時改善可串流的影片品質。WebRTC NV 可收集用來建立補充 API 的計畫,以實現新的用途。這類 API 包含現有 API 的擴充功能,可讓您進一步控管現有功能 (例如可擴充影片程式設計) 以及提供較低層級元件存取權的 API。後者能整合高效能的自訂 WebAssembly 元件,讓網頁開發人員能更靈活地進行創新。隨著 5G 網路和對互動性服務的需求增加,我們預計今年將持續增加以 WebRTC 為建構基礎的服務數量。