WebRTC jest teraz standardem W3C i IETF

Krótkie omówienie historii, architektury, przypadków użycia i przyszłości WebRTC.

Huib Kleinhout
Huib Kleinhout

Proces definiowania standardu internetowego to długi proces zapewniający użyteczność, spójność i zgodność w różnych przeglądarkach. Dziś W3C i IETF świętują osiągnięcie jednego z najważniejszych standardów podczas pandemii – WebRTC.

Historia

WebRTC to platforma, która umożliwia przeglądarkom, aplikacjom mobilnym i aplikacjom komputerowym możliwość komunikacji w czasie rzeczywistym, zwykle używana do rozmów wideo. Platforma ta obejmuje kompleksowy zestaw technologii i standardów. Firma Google zapoczątkowała koncepcję stworzenia WebRTC w 2009 r. jako alternatywy dla Adobe Flash i aplikacji komputerowych, których nie można uruchomić w przeglądarce. Poprzednia generacja produktów działających w przeglądarce opierała się na licencjonowanej zastrzeżonej technologii. Przy jej użyciu powstały różne produkty, m.in. Hangouts. Następnie firma Google przejęła firmy, od których licencjonowała technologię, i udostępniła ją jako projekt open source WebRTC. Ta baza kodu jest zintegrowana z Chrome i używana przez większość aplikacji korzystających z WebRTC. Wraz z innymi dostawcami przeglądarek i liderami branży, takimi jak Mozilla, Microsoft, Cisco i Ericsson, standaryzacja WebRTC została uruchomiona zarówno w W3C, jak i IETF. W 2013 r. Mozilla i Google przeprowadziłyprowadzenie rozmów wideo między przeglądarkami. W związku z rozwojem tego standardu wiele dyskusji na temat architektury doprowadziło do różnic w implementacji w różnych przeglądarkach oraz do wyzwań ze zgodnością i interoperacyjnością. Większość z tych nieporozumień została ostatecznie rozstrzygnięta, gdy standard został ostateczny. Do specyfikacji WebRTC towarzyszy teraz pełny zestaw testów platformy oraz narzędzia służące do sprawdzania zgodności. Przeglądarki w dużej mierze dostosowują swoje implementacje. Zakończył się trudny okres, w którym deweloperzy stron internetowych musieli nieustannie dostosowywać swoje usługi do różnych implementacji i zmian w specyfikacji przeglądarek.

Architektura i funkcje

Interfejs API RTCPeerConnection jest główną częścią specyfikacji WebRTC. RTCPeerConnection dotyczy łączenia 2 aplikacji w różnych punktach końcowych w celu komunikacji za pomocą protokołu peer-to-peer. Interfejs PeerConnection API ściśle współpracuje z getUserMedia w celu uzyskiwania dostępu do kamery i mikrofonu oraz z getDisplayMedia w celu przechwytywania zawartości ekranu. WebRTC umożliwia przesyłanie i odbieranie strumieni zawierających treści audio i wideo, a także dowolnych danych binarnych.DataChannel Podstawą każdej implementacji WebRTC jest funkcja multimediów przetwarzania, kodowania i dekodowania dźwięku i obrazu. WebRTC obsługuje różne kodeki audio, przy czym Opus jest najczęściej wykorzystywanym i uniwersalnym formatem. Implementacje WebRTC są wymagane do obsługi bezpłatnego kodeka wideo Google VP8 oraz H.264 do przetwarzania wideo. Połączenia WebRTC są zawsze szyfrowane, co odbywa się za pomocą 2 istniejących protokołów: DTLS i SRTP. WebRTC w dużym stopniu korzysta z istniejących standardów i technologii, od kodeków wideo (VP8, H264), przemierzania sieci (ICE), transportu (RTP, SCTP) po protokoły opisu multimediów (SDP). Wszystkie te zasady są powiązane w ponad 50 dokumentach RFC.

Przypadki użycia: kilka milisekund

WebRTC jest powszechnie używany w kluczowych zastosowaniach, takich jak zdalna operacja, monitorowanie systemu i zdalne sterowanie autonomicznymi samochodami, a także w rozmowach głosowych i wideo opartych na UDP, w których buforowanie nie jest możliwe. Prawie wszystkie usługi rozmów wideo w przeglądarce takie jak Google, Facebook, Cisco, RingCentral i Jitsi korzystają z WebRTC. Google Stadia i NVIDIA GeForce NOW wykorzystują WebRTC, aby przesyłać strumieniowo rozgrywkę z chmury do przeglądarki bez zauważalnego opóźnienia.

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

W ciągu ostatniego roku WebRTC zaobserwował 100-krotny wzrost wykorzystania przeglądarki Chrome dzięki zwiększeniu liczby rozmów wideo z poziomu przeglądarki. Dostawcy przeglądarek zaczęli optymalizować technologie, od których zależy sposób prowadzenia rozmów wideo, ponieważ w czasie pandemii rozmowy wideo stały się kluczowym elementem życia wielu osób. Było to szczególnie ważne, ponieważ zasoby wymagające dużych spotkań i efekty wideo w spotkaniach wideo były coraz częstsze, gdy pracownicy i uczniowie zaczęli pracować i uczyć się z domu. W ciągu ostatniego roku przeglądarka Chrome stała się nawet o 30% bardziej przyjaznym bateriom podczas rozmów wideo, a w bardziej intensywnych zastosowaniach planujemy wprowadzić więcej optymalizacji. Mozilla, Apple i Microsoft wprowadzili znaczne ulepszenia we wdrażaniu WebRTC w czasie pandemii, w szczególności w zakresie przestrzegania formalnego standardu.

Przyszłość WebRTC

Choć WebRTC jest teraz standardem W3C, wciąż ulepszamy tę usługę. Nowy kodek wideo AV1, który oszczędza do 50% przepustowości, zostaje udostępniony w WebRTC i przeglądarkach. Kolejne ulepszenia bazy kodu open source powinny jeszcze bardziej ograniczyć opóźnienie i poprawić jakość filmów, które można przesyłać strumieniowo. WebRTC NV gromadzi inicjatywę tworzenia dodatkowych interfejsów API na potrzeby nowych przypadków użycia. Obejmują one rozszerzenia istniejących interfejsów API, które dają większą kontrolę nad istniejącymi funkcjami, takimi jak skalowalny kod wideo, a także interfejsy API, które dają dostęp do komponentów niższego poziomu. Daje on twórcom stron internetowych większą elastyczność wprowadzania innowacji dzięki integracji wysokiej jakości niestandardowych komponentów WebAssembly. W związku z pojawianiem się sieci 5G i zapotrzebowaniem na więcej usług interaktywnych oczekujemy w nadchodzącym roku dalszego wzrostu liczby usług opartych na WebRTC.