WebRTC jest teraz standardem W3C i IETF

Krótki przegląd historii, architektury, przypadków użycia i przyszłości WebRTC.

Huib Kleinhout
Huib Kleinhout

Proces definiowania standardu internetowego to długotrwały proces, który zapewnia przydatność, spójność i zgodność z różnymi przeglądarkami. Dzisiaj W3C i IETF świętują ukończenie prac nad jednym z najważniejszych standardów z czasów pandemii: WebRTC.

Historia

WebRTC to platforma udostępniająca przeglądarkom, aplikacjom mobilnym i aplikacjom na komputery funkcje komunikacji w czasie rzeczywistym, które są zwykle używane do rozmów wideo. Platforma składa się z kompleksowego zestawu technologii i standardów. W 2009 r. Google zainicjowało tworzenie WebRTC jako alternatywy dla Adobe Flash i aplikacji komputerowych, które nie mogły działać w przeglądarce. Wcześniejsza generacja produktów opartych na przeglądarce została opracowana na podstawie licencjonowanej, zastrzeżonej technologii. Z użyciem tej technologii powstały różne usługi, w tym Hangouts. Następnie Google nabyło firmy, od których licencjonowano tę technologię, i udostępniło ją jako projekt WebRTC typu open source. Ten kod jest zintegrowany z Chrome i używany przez większość aplikacji korzystających z WebRTC. Wspólnie z innymi dostawcami przeglądarek i liderami branżowymi, takimi jak Mozilla, Microsoft, Cisco i Ericsson, rozpoczęliśmy standaryzację WebRTC w ramach W3C i IETF. W 2013 roku Mozilla i Google zademonstrowały prowadzenie rozmów wideo w przeglądarkach. W trakcie rozwoju standardu wiele dyskusji na temat architektury doprowadziło do różnic w wdrożeniu w różnych przeglądarkach oraz utrudniło zgodność i współdziałanie. Większość tych rozbieżności została ostatecznie rozwiązana, ponieważ standard został sfinalizowany w ostatnich latach. Specyfikacja WebRTC jest teraz uzupełniona o pełen zestaw testów platformy i narzędzia do rozwiązywania problemów ze zgodnością, a przeglądarki w dużym stopniu dostosowały swoje implementacje. To koniec trudnego okresu, w którym deweloperzy internetowi musieli stale dostosowywać swoje usługi do różnych implementacji przeglądarek i zmian specyfikacji.

Architektura i funkcjonalność

Interfejs RTCPeerConnection API jest centralnym elementem specyfikacji WebRTC. RTCPeerConnection służy do łączenia 2 aplikacji na różnych punktach końcowych w celu komunikacji za pomocą protokołu peer-to-peer. Interfejs API PeerConnectionściśle współpracuje z getUserMedia w zakresie dostępu do kamery i mikrofonu oraz getDisplayMedia w zakresie przechwytywania zawartości ekranu. WebRTC umożliwia wysyłanie i odbieranie strumieni zawierających treści audio lub wideo, a także dowolne dane binarne za pomocą DataChannel. Funkcje multimedialne do przetwarzania, kodowania i dekoodowania dźwięku i obrazu stanowią podstawę każdej implementacji WebRTC. WebRTC obsługuje różne kodeki audio, z których Opus jest najczęściej używanym i najbardziej wszechstronnym. Implementacje WebRTC muszą obsługiwać bezpłatny kodek wideo VP8 i H.264 do przetwarzania wideo. Połączenia WebRTC są zawsze szyfrowane, co jest osiągane dzięki 2 dotychczasowym protokołom: DTLS i SRTP. WebRTC korzysta z dotychczasowych standardów i technologii, od kodeków wideo (VP8, H264) przez przechodzenie przez sieć (ICE), transport (RTP, SCTP) po protokoły opisu multimediów (SDP). Jest to połączone z ponad 50 RFC.

Przypadki użycia: gdy liczą się milisekundy

WebRTC jest szeroko stosowany w przypadku aplikacji o krytycznym czasie działania, takich jak operacje chirurgiczne na odległość, monitorowanie systemów czy zdalne sterowanie autonomicznymi samochodami, a także w przypadku połączeń głosowych i wideo zbudowanych na protokole UDP, w których buforowanie nie jest możliwe. Prawie wszystkie usługi rozmów wideo w przeglądarce od firm takich jak Google, Facebook, Cisco, RingCentral i Jitsi korzystają z WebRTC. Google Stadia i NVIDIA GeForce NOW korzystają z WebRTC, aby przesyłać strumień rozgrywki z chmury do przeglądarki bez zauważalnego opóźnienia.

Pandemia skupia uwagę na wydajności rozmów wideo

W ciągu ostatniego roku WebRTC w Chrome był używany 100 razy częściej ze względu na zwiększoną liczbę połączeń wideo nawiązywanych w przeglądarce. W czasie pandemii rozmowy wideo stały się podstawową częścią życia wielu osób, dlatego dostawcy przeglądarek zaczęli optymalizować technologie, od których zależy działanie rozmów wideo. Było to szczególnie ważne, ponieważ duże spotkania wymagające wielu zasobów i efekty wideo podczas spotkań wideo stały się bardziej popularne, gdy pracownicy i uczniowie zaczęli pracować i uczyć się zdalnie. W ubiegłym roku Chrome stał się nawet o 30% bardziej oszczędny pod względem zużycia baterii podczas rozmów wideo. W przyszłości planujemy wprowadzić więcej optymalizacji na potrzeby intensywnego korzystania. W czasie pandemii Mozilla, Apple i Microsoft znacznie ulepszyły implementację WebRTC, zwłaszcza pod kątem przestrzegania nowego sformalizowanego standardu.

Przyszłość WebRTC

WebRTC jest już standardem W3C, ale nadal jest ulepszany. Nowy kodek wideo AV1, który zaoszczędza do 50% przepustowości, staje się dostępny w WebRTC i przeglądarkach internetowych. Dalsze udoskonalenia kodu źródłowego open source powinny jeszcze bardziej zmniejszyć opóźnienie i poprawić jakość obrazu podczas transmisji strumieniowej. WebRTC NV to inicjatywa mająca na celu tworzenie dodatkowych interfejsów API umożliwiających nowe przypadki użycia. Są to rozszerzenia dotychczasowych interfejsów API, które zapewniają większą kontrolę nad dotychczasowymi funkcjami, takimi jak skalowalne kodowanie wideo, oraz interfejsy API, które zapewniają dostęp do komponentów niższych poziomów. Ta druga opcja daje deweloperom większą swobodę w wdrażaniu innowacji dzięki integracji wydajnych niestandardowych komponentów WebAssembly. W związku z rozwojem sieci 5G i rosnącym zapotrzebowaniem na bardziej interaktywne usługi spodziewamy się, że w przyszłym roku liczba usług korzystających z WebRTC będzie nadal wzrastać.