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, który zapewnia użyteczność, spójność i zgodność w różnych przeglądarkach. Obecnie W3C i IETF stanowią potwierdzenie realizacji być może jednego z najważniejszych standardów pandemii, czyli WebRTC.

WebRTC to platforma umożliwiająca przeglądarkom, aplikacjom mobilnym i aplikacjom komputerowym funkcje komunikacji w czasie rzeczywistym, zwykle używane na potrzeby rozmów wideo. Platforma obejmuje kompleksowy zestaw technologii i standardów. W 2009 r. firma Google zaproponowała utworzenie WebRTC jako alternatywy dla Adobe Flasha i aplikacji komputerowych, których nie można było uruchomić w przeglądarce. Poprzednia generacja usług opartych na przeglądarkach była oparta na zastrzeżonej technologii licencjonowanej. Technologia ta została opracowana w różnych usługach, w tym w Hangouts. Następnie firma Google przejęła firmy, od których licencjonowała tę technologię, i udostępniła ją jako projekt WebRTC na zasadach open source. Baza kodu jest zintegrowana z Chrome i używana w większości aplikacji korzystających z WebRTC. Wraz z innymi dostawcami przeglądarek i liderami branży, takimi jak Mozilla, Microsoft, Cisco i Ericsson, w ramach W3C i IETF rozpoczęto standaryzację WebRTC. W 2013 r. Mozilla i Google zaprezentowali rozmowy wideo między przeglądarkami. W wyniku ewolucji standardu liczne dyskusje na temat architektury doprowadziły do powstania różnic we wdrażaniu tych zasad w różnych przeglądarkach oraz problemów ze zgodnością i interoperacyjnością. Większość z tych nieporozumień została ostatecznie rozwiązana, gdy standard został sfinalizowany w minionych latach. Specyfikacja WebRTC zawiera teraz pełny zestaw testów platformy, a narzędzia do sprawdzania zgodności i odpowiednio dostosowywały swoje implementacje. To koniec trudnego okresu, w którym twórcy stron internetowych musieli nieprzerwanie dostosowywać swoje usługi do różnych implementacji przeglądarek i zmieniać specyfikacje.

Architektura i funkcje

RTCPeerConnection API to główna część specyfikacji WebRTC. RTCPeerConnection dotyczy łączenia 2 aplikacji w różnych punktach końcowych w celu komunikacji za pomocą protokołu peer-to-peer. Interfejs API PeerConnection ściśle współpracuje z usługą getUserMedia w zakresie dostępu do kamery i mikrofonu oraz z getDisplayMedia w przypadku rejestrowania zawartości ekranu. WebRTC umożliwia wysyłanie i odbieranie strumieni zawierających treści audio lub wideo, a także dowolnych danych binarnych za pomocą interfejsu DataChannel. Podstawą każdej implementacji WebRTC są funkcje multimediów służące do przetwarzania, kodowania i dekodowania dźwięku i wideo. WebRTC obsługuje różne kodeki audio. Opus jest najczęściej używanym i uniwersalnym kodekiem. Implementacje WebRTC są wymagane do obsługi bezpłatnego kodeka wideo VP8 Google oraz H.264 do przetwarzania wideo. Połączenia WebRTC są zawsze szyfrowane za pomocą 2 istniejących protokołów: DTLS i SRTP. WebRTC w dużej mierze opiera się na istniejących standardach i technologiach, od kodeków wideo (VP8, H264), przez sieć traversal (ICE), transport (RTP, SCTP) po protokoły opisu mediów (SDP). Są one powiązane ze sobą w ponad 50 dokumentach RFC.

Przypadki użycia: w milisekundach

WebRTC jest powszechnie używany w aplikacjach o kluczowym znaczeniu, takich jak zdalna operacja, monitorowanie systemu i zdalne sterowanie autonomicznymi samochodami, a także w rozmowach głosowych i wideo opartych na UDP, gdzie buforowanie nie jest możliwe. Prawie wszystkie oparte na przeglądarce usługi rozmów wideo 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 się na wydajności rozmów wideo

W zeszłym roku WebRTC zaobserwował 100-krotny wzrost wykorzystania w Chrome dzięki zwiększeniu liczby wywołań wideo z poziomu przeglądarki. Dostawcy przeglądarek zauważyli, że w czasie pandemii rozmowy wideo stały się podstawowym elementem życia wielu osób, dlatego zaczęli optymalizować technologie, od których zależy działanie rozmów wideo. Było to szczególnie ważne, ponieważ zasoby wymagające dużych spotkań i efekty wideo podczas spotkań wideo stały się powszechnie dostępne, gdy pracownicy i uczniowie zaczęli pracować i uczyć się z domu. W zeszłym roku przeglądarka Chrome stała się nawet o 30% bardziej zużywana z baterią na potrzeby rozmów wideo i wprowadzi więcej optymalizacji w przypadku intensywnych scenariuszy użytkowania. Firmy Mozilla, Apple i Microsoft wprowadziły znaczne ulepszenia w implementacji WebRTC w trakcie pandemii, zwłaszcza pod względem zgodności z obecnie sformalizowanym standardem.

Przyszłość WebRTC

Chociaż WebRTC jest obecnie standardem W3C, wciąż pracujemy nad jego udoskonaleniem. Nowy kodek wideo AV1, który zaoszczędzi nawet 50% przepustowości, jest udostępniany w WebRTC i przeglądarkach. Oczekujemy, że dalsze ulepszenia w ramach kodu open source jeszcze bardziej zmniejszyją opóźnienia i poprawią jakość przesyłanych strumieniowo filmów. WebRTC NV gromadzi inicjatywę tworzenia dodatkowych interfejsów API umożliwiających nowe przypadki użycia. Obejmują one rozszerzenia istniejących interfejsów API, które dają większą kontrolę nad istniejącymi funkcjami, takimi jak Skalowalne kodowanie wideo, oraz interfejsy API dające dostęp do komponentów niższego poziomu. Ten drugi sposób daje programistom stron internetowych większą elastyczność i wprowadzanie innowacji przez integrację wysokowydajnych niestandardowych komponentów WebAssembly. W związku z pojawianiem się sieci 5G i zapotrzebowaniem na więcej interaktywnych usług spodziewamy się w nadchodzącym roku dalszego wzrostu usług bazujących na WebRTC.