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 標準,但持續改善中。新的影片轉碼器 AV1 在 WebRTC 和網路瀏覽器中推出最多節省 50% 的頻寬。我們預計持續改善開放原始碼程式碼集,進而進一步縮短延遲時間並提高可串流影片的品質。WebRTC NV 會收集建立補充 API 的計畫,以實現新的用途。這些擴充功能包含現有 API 的擴充功能,可讓系統進一步控管現有功能,例如可擴充的影片編碼,以及可存取較低層級元件的 API。後者會整合高效能的自訂 WebAssembly 元件,讓網頁開發人員在創新時更有彈性。隨著新興 5G 網路日益普及,使用者對於互動性更高的服務,我們預期在未來一年內,除了 WebRTC 的建構服務外,我們預計還會以更多方式建構服務。