WebRTC è ora uno standard W3C e IETF

Una breve panoramica della storia, dell'architettura, dei casi d'uso e del futuro di WebRTC.

Huib Kleinhout
Huib Kleinhout

Il processo di definizione di uno standard web è un processo lungo che garantisce utilità, coerenza e compatibilità tra i browser. Oggi W3C e IETF segnano il completamento di forse uno degli standard più importanti durante la pandemia: WebRTC.

WebRTC è una piattaforma che offre a browser, app mobile e app desktop funzionalità di comunicazione in tempo reale, tipicamente utilizzate per le videochiamate. La piattaforma è composta da un insieme completo di tecnologie e standard. Google ha dato il via all'idea di creare WebRTC nel 2009, come alternativa ad Adobe Flash e alle applicazioni desktop che non potevano essere eseguite nel browser. La precedente generazione di prodotti basati su browser si basava sulla tecnologia proprietaria concessa in licenza. Sono stati realizzati vari prodotti con questa tecnologia, tra cui Hangouts. Google ha poi acquisito le società da cui aveva acquisito in licenza la tecnologia e l'ha resa disponibile come progetto WebRTC open source. Questo codebase è integrato in Chrome e utilizzato dalla maggior parte delle applicazioni che utilizzano WebRTC. Insieme ad altri fornitori di browser e leader del settore come Mozilla, Microsoft, Cisco ed Ericsson, la standardizzazione di WebRTC è stata lanciata in W3C e IETF. Nel 2013, Mozilla e Google hanno dimostrato l'uso delle videochiamate tra i browser. Attraverso l'evoluzione dello standard, molte discussioni sull'architettura avevano portato a differenze di implementazione tra i vari browser e messo in pericolo la compatibilità e l'interoperabilità. La maggior parte di questi disaccordi è stata infine risolta man mano che lo standard è stato finalizzato negli ultimi anni. La specifica WebRTC è ora accompagnata da un set completo di test della piattaforma e da strumenti per risolvere la compatibilità. I browser hanno adattato in gran parte le proprie implementazioni di conseguenza. Con questo si conclude un periodo difficile in cui gli sviluppatori web hanno dovuto adottare continuamente i propri servizi per diverse implementazioni del browser e modifiche alle specifiche.

Architettura e funzionalità

L'API RTCPeerConnection è la parte centrale della specifica WebRTC. RTCPeerConnection si occupa di collegare due applicazioni su endpoint diversi per comunicare tramite un protocollo peer-to-peer. L'API PeerConnection interagisce a stretto contatto con getUserMedia per accedere alla fotocamera e al microfono e con getDisplayMedia per acquisire i contenuti dello schermo. WebRTC consente di inviare e ricevere stream che includono contenuti audio e/o video, nonché dati binari arbitrari tramite DataChannel. La funzionalità multimediale per l'elaborazione, la codifica e la decodifica di audio e video fornisce il nucleo di qualsiasi implementazione WebRTC. WebRTC supporta vari codec audio e Opus è quello più utilizzato e versatile. Le implementazioni WebRTC sono necessarie per supportare sia il codec video VP8 senza costi di Google sia H.264 per l'elaborazione dei video. Le connessioni WebRTC sono sempre criptate, tramite due protocolli esistenti: DTLS e SRTP. WebRTC si basa molto sugli standard e sulle tecnologie esistenti, dai codec video (VP8, H264), l'attraversamento della rete (ICE), il trasporto (RTP, SCTP) e i protocolli per la descrizione dei contenuti multimediali (SDP). Sono collegati in oltre 50 RFC.

Casi d'uso: quando è una questione di millisecondi

WebRTC è ampiamente utilizzato in applicazioni critiche dal tempo, come la chirurgia da remoto, il monitoraggio dei sistemi e il controllo remoto di auto autonome e le chiamate vocali o videochiamate basate su UDP, in cui non è possibile il buffering. Quasi tutti i servizi di videochiamata basati su browser di aziende come Google, Facebook, Cisco, RingCentral e Jitsi utilizzano WebRTC. Google Stadia e NVIDIA GeForce NOW utilizzano WebRTC per trasferire lo stream di gameplay dal cloud al browser web senza ritardi percepibili.

La pandemia si concentra sulle prestazioni delle videochiamate

Nell'ultimo anno, WebRTC ha registrato un aumento di 100 volte dell'utilizzo di Chrome a causa dell'aumento delle videochiamate dal browser. Rendendosi conto che le videochiamate sono diventate una parte fondamentale della vita di molte persone durante la pandemia, i fornitori di browser hanno iniziato a ottimizzare le tecnologie da cui dipendono le videochiamate. Ciò è stato particolarmente importante perché le risorse che richiedevano riunioni con molti partecipanti e gli effetti video nelle riunioni video sono diventati più comuni quando dipendenti e studenti iniziavano a lavorare e studiare da casa. Nell'ultimo anno, Chrome ha consumato più del 30% di batteria per le videochiamate, con ulteriori ottimizzazioni in arrivo per gli scenari di utilizzo intensivo. Mozilla, Apple e Microsoft hanno tutti apportato miglioramenti significativi nell'implementazione di WebRTC durante la pandemia, in particolare per garantire il rispetto dello standard ora formale.

Il futuro di WebRTC

Anche se WebRTC viene completato come standard W3C, i miglioramenti continuano. In WebRTC e nei browser web è disponibile il nuovo codec video AV1, che risparmia fino al 50% della larghezza di banda. I continui miglioramenti nel codebase open source dovrebbero ridurre ulteriormente il ritardo e migliorare la qualità dei video riproducibili in streaming. WebRTC NV raccoglie l'iniziativa per creare API supplementari per consentire nuovi casi d'uso. Si tratta di estensioni alle API esistenti al fine di fornire un maggiore controllo sulle funzionalità esistenti, come la codifica video scalabile, nonché sulle API che danno accesso ai componenti di livello inferiore. Quest'ultimo offre agli sviluppatori web una maggiore flessibilità per innovare integrando componenti WebAssembly personalizzati ad alte prestazioni. Con le reti 5G emergenti e la richiesta di servizi più interattivi, nell'anno in futuro prevediamo un continuo aumento dei servizi oltre a WebRTC.