Una breve panoramica della storia, dell'architettura, dei casi d'uso e del futuro di WebRTC.
La definizione di uno standard web è un processo lungo che garantisce utilità, coerenza e compatibilità tra i browser. Oggi W3C e IETF celebrano il completamento di uno degli standard 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, in genere utilizzate per le videochiamate. La piattaforma è costituita da un insieme completo di tecnologie e standard. Google ha iniziato a pensare a WebRTC nel 2 009, come alternativa ad Adobe Flash e alle applicazioni desktop che non potevano essere eseguite nel browser. La generazione precedente di prodotti basati su browser è stata creata sulla base di tecnologia proprietaria in licenza. Con questa tecnologia sono stati sviluppati diversi prodotti, tra cui Hangouts. Google ha poi acquisito le società da cui aveva acquisito la licenza della tecnologia e l'ha resa disponibile come progetto open source WebRTC. Questo codice base è integrato in Chrome e utilizzato dalla maggior parte delle applicazioni che utilizzano WebRTC. Insieme ad altri fornitori di browser e leader di 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 le videochiamate tra i loro browser. Durante l'evoluzione dello standard, molte discussioni sull'architettura hanno portato a differenze di implementazione tra i browser e hanno messo in discussione la compatibilità e l'interoperabilità. La maggior parte di questi disaccordi è stata risolta con il perfezionamento dello standard negli ultimi anni. La specifica WebRTC ora è accompagnata da un insieme completo di test della piattaforma e da strumenti per risolvere i problemi di compatibilità. I browser hanno adattato in gran parte le proprie implementazioni di conseguenza. Questo pone fine a un periodo difficile in cui gli sviluppatori web dovevano continuamente adattare i propri servizi a implementazioni e modifiche alle specifiche di browser diversi.
Architettura e funzionalità
L'API RTCPeerConnection
è la parte centrale della specifica WebRTC. RTCPeerConnection
si occupa di collegare due applicazioni su endpoint diversi per comunicare utilizzando un protocollo peer-to-peer. L'API PeerConnection
interagisce strettamente con getUserMedia
per accedere alla videocamera 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 è senza costi, sia H.264 per l'elaborazione dei video. Le connessioni WebRTC sono sempre criptate, il che viene ottenuto tramite due protocolli esistenti: DTLS e SRTP. WebRTC si basa molto su standard e tecnologie esistenti, dai codec video (VP8, H264), al traversale della rete (ICE), al trasporto (RTP, SCTP), ai protocolli di descrizione dei contenuti multimediali (SDP). Questi elementi sono collegati in oltre 50 RFC.
Casi d'uso: quando si tratta di millisecondi
WebRTC è ampiamente utilizzato in applicazioni con tempistiche critiche, come la chirurgia da remoto, il monitoraggio del sistema, il controllo remoto delle auto a guida autonoma e le chiamate vocali o video basate su UDP, dove non è possibile il buffering. Quasi tutti i servizi di videochiamate 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 percettibili.
La pandemia mette in evidenza il rendimento delle videochiamate
Nell'ultimo anno, WebRTC ha registrato un aumento di 100 volte dell'utilizzo in Chrome a causa dell'aumento delle videochiamate dall'interno del browser. Consapevoli che le videochiamate sono diventate parte integrante della vita di molte persone durante la pandemia, i fornitori di browser hanno iniziato a ottimizzare le tecnologie su cui si basano. 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ù rispettoso della batteria per le videochiamate, con ulteriori ottimizzazioni in arrivo per gli scenari di utilizzo intensivo. Mozilla, Apple e Microsoft hanno apportato miglioramenti significativi all'implementazione di WebRTC durante la pandemia, in particolare per garantire la conformità allo standard ora formalizzato.
Il futuro di WebRTC
Anche se WebRTC è ora completato come standard W3C, i miglioramenti continuano. Il nuovo codec video AV1, che risparmia fino al 50% della larghezza di banda, è in fase di introduzione in WebRTC e nei browser web. I continui miglioramenti della base di codice open source dovrebbero ridurre ulteriormente il ritardo e migliorare la qualità del video che può essere trasmesso in streaming. WebRTC NV raccoglie l'iniziativa per creare API supplementari per abilitare nuovi casi d'uso. Si tratta di estensioni di API esistenti per offrire un maggiore controllo sulle funzionalità esistenti, come il codice video scalabile, nonché API che forniscono l'accesso a 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 un ulteriore aumento dei servizi basati su WebRTC nel corso dell'anno.