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

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

Cronologia

WebRTC è una piattaforma che fornisce a browser, app mobile e app desktop funzionalità di comunicazione in tempo reale, in genere utilizzate per le videochiamate. La piattaforma è costituita da un insieme completo di tecnologie e standard. Google ha lanciato l'idea di creare WebRTC nel 2009, come alternativa ad Adobe Flash e alle applicazioni desktop che non potevano essere eseguite nel browser. La generazione precedente di prodotti basati su browser era basata su tecnologia proprietaria concessa in licenza. Con questa tecnologia sono stati creati vari prodotti, tra cui Hangouts. Google ha poi acquisito le società da cui aveva ottenuto la licenza per 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 avviata sia nel W3C che nell'IETF. Nel 2013, Mozilla e Google hanno dimostrato la possibilità di effettuare videochiamate tra i loro browser. Nel corso dell'evoluzione dello standard, molte discussioni sull'architettura hanno portato a differenze di implementazione tra i browser e hanno messo a dura prova la compatibilità e l'interoperabilità. La maggior parte di questi disaccordi è stata infine risolta con la finalizzazione dello standard negli ultimi anni. La specifica WebRTC è ora accompagnata da un set completo di test della piattaforma e strumenti per risolvere i problemi di compatibilità. I browser hanno adattato ampiamente le loro implementazioni di conseguenza. Questo pone fine a un periodo difficile in cui gli sviluppatori web dovevano continuamente adattare i propri servizi alle diverse implementazioni dei browser e alle modifiche delle specifiche.

Architettura e funzionalità

L'API RTCPeerConnection è la parte centrale della specifica WebRTC. RTCPeerConnection si occupa di connettere due applicazioni su endpoint diversi per comunicare utilizzando un protocollo peer-to-peer. L'API PeerConnection interagisce strettamente con getUserMedia per accedere alla fotocamera e al microfono e con getDisplayMedia per acquisire i contenuti dello schermo. WebRTC ti 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 il nucleo di qualsiasi implementazione WebRTC. WebRTC supporta vari codec audio, tra cui Opus, il più utilizzato e versatile. Le implementazioni WebRTC devono supportare sia il codec video VP8 di Google, che è di utilizzo senza costi, sia H.264 per l'elaborazione dei video. Le connessioni WebRTC sono sempre criptate, grazie a due protocolli esistenti: DTLS e SRTP. WebRTC si basa molto su standard e tecnologie esistenti, dai codec video (VP8, H264), all'attraversamento di rete (ICE), al trasporto (RTP, SCTP), ai protocolli di descrizione dei contenuti multimediali (SDP). Tutto questo è collegato in oltre 50 RFC.

Casi d'uso: quando i millisecondi fanno la differenza

WebRTC è ampiamente utilizzato in applicazioni in cui il tempo è un fattore critico, come la chirurgia a distanza, il monitoraggio dei sistemi e il controllo remoto di auto autonome, nonché nelle videochiamate o chiamate vocali basate su UDP, dove il buffering non è possibile. 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 trasmettere il gameplay dal cloud al browser web senza ritardi percepibili.

La pandemia mette in evidenza le prestazioni delle videochiamate

Nell'ultimo anno, l'utilizzo di WebRTC in Chrome è aumentato di 100 volte a causa dell'aumento delle videochiamate all'interno del browser. Riconoscendo 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 è stato particolarmente importante perché le riunioni di grandi dimensioni che richiedono molte risorse e gli effetti video nelle riunioni video sono diventati più comuni quando dipendenti e studenti hanno iniziato a lavorare e studiare da casa. Nell'ultimo anno, Chrome è diventato fino al 30% più efficiente dal punto di vista della batteria per le videochiamate, con ulteriori ottimizzazioni in arrivo per gli scenari di utilizzo intensivo. Mozilla, Apple e Microsoft hanno apportato miglioramenti significativi alla loro implementazione di WebRTC durante la pandemia, in particolare per garantire il rispetto dello standard ora formalizzato.

Il futuro di WebRTC

Sebbene WebRTC sia ora completato come standard W3C, i miglioramenti continuano. Il nuovo codec video AV1, che consente di risparmiare fino al 50% di larghezza di banda, sta diventando disponibile in WebRTC e nei browser web. Si prevede che i continui miglioramenti della codebase open source ridurranno ulteriormente il ritardo e miglioreranno la qualità dei video che possono essere trasmessi in streaming. WebRTC NV raccoglie l'iniziativa per creare API supplementari per consentire nuovi casi d'uso. Si tratta di estensioni alle API esistenti per offrire un maggiore controllo sulle funzionalità esistenti, come la codifica video scalabile, nonché di API che consentono di accedere 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 domanda di servizi più interattivi, prevediamo di assistere a un continuo aumento dei servizi basati su WebRTC nel prossimo anno.