簡要介紹 WebRTC 的歷史、架構、用途和未來。
定義網頁標準的過程相當漫長,但可確保各瀏覽器的實用性、一致性和相容性。今天,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、H.264)、網路穿越 (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 視訊編碼器可節省高達 50% 的頻寬,目前已可在 WebRTC 和網路瀏覽器中使用。我們會持續改善開放原始碼程式碼庫,進一步縮短延遲時間,並提升可串流播放的影片品質。WebRTC NV 會收集相關計畫,以便建立輔助 API,以便啟用新的用途。這些擴充功能可擴充現有 API,讓您更能控管現有功能,例如 可調整式影片編碼,以及可存取較低層級元件的 API。後者可讓網頁開發人員整合高效能自訂 WebAssembly 元件,以更彈性的方式進行創新。隨著 5G 網路的興起,以及使用者對互動式服務的需求增加,我們預期未來一年內,以 WebRTC 為基礎的服務會持續增加。