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 lungo processo che garantisce utilità, coerenza e compatibilità tra i browser. Oggi W3C e IETF segnano il completamento di uno degli standard forse più importanti durante la pandemia: WebRTC.

Cronologia

WebRTC è una piattaforma che offre a browser, app mobile e app desktop funzionalità di comunicazione in tempo reale, generalmente utilizzate per le videochiamate. La piattaforma è costituita da una serie completa di tecnologie e standard. Google ha avviato l'idea di creare WebRTC nel 2009, in 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 su una tecnologia proprietaria concessa in licenza. Con questa tecnologia sono stati realizzati vari prodotti, incluso Hangouts. Google ha poi acquisito le aziende da cui aveva concesso 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 quali Mozilla, Microsoft, Cisco ed Ericsson, la standardizzazione di WebRTC è stata avviata sia in W3C che in IETF. Nel 2013, Mozilla e Google hanno dimostrato le videochiamate tra i loro browser. Attraverso l'evoluzione dello standard, molte discussioni sull'architettura avevano portato a differenze di implementazione tra i browser e messo in discussione compatibilità e interoperabilità. La maggior parte di questi disaccordi è stata risolta con la finalizzazione dello standard negli ultimi anni. La specifica WebRTC è ora accompagnata da un set completo di test della piattaforma e di strumenti per gestire la compatibilità e i browser hanno ampiamente adattato le loro implementazioni di conseguenza. Si conclude così un periodo difficile in cui gli sviluppatori web hanno dovuto adottare continuamente i loro 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 della connessione di due applicazioni su endpoint diversi per comunicare utilizzando un protocollo peer-to-peer. L'API PeerConnection interagisce a stretto contatto con getUserMedia per accedere alla fotocamera e al microfono e 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 costituisce la base di qualsiasi implementazione WebRTC. WebRTC supporta vari codec audio e Opus è il più utilizzato e versatile. Le implementazioni WebRTC sono necessarie per supportare il codec video senza costi VP8 di Google e H.264 per l'elaborazione dei video. Le connessioni WebRTC sono sempre crittografate tramite due protocolli esistenti: DTLS e SRTP. WebRTC si basa in larga misura su standard e tecnologie esistenti, dai codec video (VP8, H264), Network Traversal (ICE), trasporti (RTP, SCTP) ai protocolli di descrizione dei contenuti multimediali (SDP). È collegato insieme in oltre 50 RFC.

Casi d'uso: quando è una questione di millisecondi

WebRTC è ampiamente utilizzato in applicazioni critiche per il tempo, come la chirurgia da remoto, il monitoraggio del sistema, il controllo remoto di auto autonome e le chiamate vocali o video basate su UDP in cui non è possibile eseguire 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 il flusso di gameplay dal cloud al browser web senza ritardi percepiti.

La pandemia si concentra sulle prestazioni delle videochiamate

Nell'ultimo anno, WebRTC ha registrato un aumento di 100 volte dell'utilizzo in Chrome grazie all'aumento delle videochiamate dall'interno del 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. Questo era particolarmente importante perché le risorse che richiedevano grandi riunioni e gli effetti video nelle riunioni video sono diventati più comuni quando dipendenti e studenti iniziavano a lavorare e a studiare da casa. Nell'ultimo anno Chrome ha aumentato fino al 30% il consumo della batteria per le videochiamate, con ulteriori ottimizzazioni in arrivo per scenari di utilizzo intensivo. Mozilla, Apple e Microsoft hanno apportato miglioramenti significativi nell'implementazione di WebRTC durante la pandemia, in particolare nel rispetto dello standard ormai formalizzato.

Il futuro di WebRTC

Anche se WebRTC viene ora completato come standard W3C, i miglioramenti continuano. Il nuovo codec video AV1 che consente di risparmiare fino al 50% della larghezza di banda è ora disponibile in WebRTC e nei browser web. Si prevede che i continui miglioramenti nel codebase open source ridurranno ulteriormente il ritardo e miglioreranno la qualità dei video riproducibili in streaming. WebRTC NV raccoglie l'iniziativa per creare API supplementari per abilitare nuovi casi d'uso. Sono costituite da estensioni alle API esistenti per fornire un maggiore controllo sulle funzionalità esistenti come Scalable Video Coding e dalle API che danno accesso ai componenti di livello inferiore. Quest'ultimo offre maggiore flessibilità agli sviluppatori web per innovare integrando componenti WebAssembly personalizzati ad alte prestazioni. Con l'emergere delle reti 5G e della domanda di servizi più interattivi, nel corso dell'anno prevediamo un aumento continuo dei servizi creati in aggiunta a WebRTC.