WebRTC est désormais une norme W3C et IETF

Présentation succincte de l'histoire, de l'architecture, des cas d'utilisation et de l'avenir de WebRTC.

Huib Kleinhout
Huib Kleinhout

La définition d'une norme Web est un processus long qui garantit l'utilité, la cohérence et la compatibilité entre les navigateurs. Aujourd'hui, le W3C et l'IETF annoncent la finalisation de l'une des normes les plus importantes de la pandémie: WebRTC.

Historique

WebRTC est une plate-forme qui fournit aux navigateurs, aux applications mobiles et aux applications pour ordinateur des fonctionnalités de communication en temps réel, généralement utilisées pour les appels vidéo. La plate-forme se compose d'un ensemble complet de technologies et de normes. Google a lancé l'idée de créer WebRTC en 2009, en tant qu'alternative à Adobe Flash et aux applications de bureau qui ne pouvaient pas s'exécuter dans le navigateur. La génération précédente de produits basés sur un navigateur était basée sur une technologie propriétaire sous licence. Divers produits ont été créés avec cette technologie, y compris Hangouts. Google a ensuite acquis les entreprises auprès desquelles il avait obtenu la licence de la technologie et l'a mise à disposition en tant que projet Open Source WebRTC. Ce code de base est intégré à Chrome et utilisé par la majorité des applications utilisant WebRTC. Avec d'autres fournisseurs de navigateurs et des leaders du secteur tels que Mozilla, Microsoft, Cisco et Ericsson, la standardisation de WebRTC a été lancée à la fois au W3C et à l'IETF. En 2013, Mozilla et Google ont démontré les appels vidéo entre leurs navigateurs. Au fil de l'évolution de la norme, de nombreuses discussions sur l'architecture ont entraîné des différences d'implémentation entre les navigateurs, et ont mis en cause la compatibilité et l'interopérabilité. La plupart de ces désaccords ont finalement été réglés à mesure que la norme a été finalisée ces dernières années. La spécification WebRTC est désormais accompagnée d'un ensemble complet de tests de plate-forme et d'outils pour résoudre les problèmes de compatibilité. Les navigateurs ont largement adapté leurs implémentations en conséquence. Cela met fin à une période difficile où les développeurs Web devaient adapter en permanence leurs services aux différentes implémentations de navigateurs et aux modifications de spécifications.

Architecture et fonctionnalités

L'API RTCPeerConnection est la partie centrale de la spécification WebRTC. RTCPeerConnection permet de connecter deux applications sur différents points de terminaison pour qu'elles communiquent à l'aide d'un protocole peer-to-peer. L'API PeerConnection interagit étroitement avec getUserMedia pour accéder à la caméra et au micro, et avec getDisplayMedia pour capturer le contenu de l'écran. WebRTC vous permet d'envoyer et de recevoir des flux qui incluent du contenu audio et/ou vidéo, ainsi que des données binaires arbitraires via DataChannel. La fonctionnalité multimédia de traitement, d'encodage et de décodage de l'audio et de la vidéo constitue le cœur de toute implémentation WebRTC. WebRTC est compatible avec divers codecs audio, Opus étant le plus utilisé et le plus polyvalent. Les implémentations WebRTC doivent être compatibles à la fois avec le codec vidéo VP8 sans frais de Google et avec H.264 pour le traitement vidéo. Les connexions WebRTC sont toujours chiffrées, ce qui est obtenu via deux protocoles existants: DTLS et SRTP. WebRTC s'appuie fortement sur les normes et technologies existantes, des codecs vidéo (VP8, H264), de la traversée de réseau (ICE), du transport (RTP, SCTP) aux protocoles de description multimédia (SDP). Cela est lié dans plus de 50 RFC.

Cas d'utilisation: lorsque l'opération prend quelques millisecondes

WebRTC est largement utilisé dans les applications critiques en temps réel, telles que la chirurgie à distance, la surveillance du système, la commande à distance des voitures autonomes, et les appels vocaux ou vidéo basés sur UDP, où le tamponnage n'est pas possible. Presque tous les services d'appels vidéo basés sur le navigateur d'entreprises telles que Google, Facebook, Cisco, RingCentral et Jitsi utilisent WebRTC. Google Stadia et NVIDIA GeForce NOW utilisent WebRTC pour diffuser le streaming du jeu depuis le cloud vers le navigateur Web sans délai perceptible.

La pandémie met l'accent sur les performances des appels vidéo

Au cours de l'année écoulée, l'utilisation de WebRTC dans Chrome a été multipliée par 100 en raison de l'augmentation des appels vidéo depuis le navigateur. Conscients que les appels vidéo sont devenus une partie essentielle de la vie de nombreuses personnes pendant la pandémie, les fournisseurs de navigateurs ont commencé à optimiser les technologies sur lesquelles ils reposent. Cela était particulièrement important, car les réunions de grande envergure et les effets vidéo dans les visioconférences sont devenus plus courants lorsque les employés et les étudiants ont commencé à travailler et à étudier à domicile. Au cours de la dernière année, Chrome est devenu jusqu'à 30% plus respectueux de la batterie pour les appels vidéo, et d'autres optimisations sont à venir pour les scénarios d'utilisation intensive. Mozilla, Apple et Microsoft ont tous apporté des améliorations significatives à leur implémentation de WebRTC pendant la pandémie, en veillant notamment à respecter la norme désormais formalisée.

L'avenir de WebRTC

Bien que WebRTC soit désormais une norme W3C, des améliorations continuent d'être apportées. Le nouveau codec vidéo AV1, qui économise jusqu'à 50% de la bande passante, est désormais disponible dans WebRTC et les navigateurs Web. Les améliorations continues de la base de code Open Source devraient réduire encore le délai et améliorer la qualité des vidéos pouvant être diffusées en streaming. WebRTC NV rassemble l'initiative visant à créer des API supplémentaires pour permettre de nouveaux cas d'utilisation. Il s'agit d'extensions d'API existantes pour mieux contrôler les fonctionnalités existantes telles que le codage vidéo évolutif, ainsi que d'API qui donnent accès à des composants de niveau inférieur. Ce dernier offre aux développeurs Web plus de flexibilité pour innover en intégrant des composants WebAssembly personnalisés hautes performances. Avec l'émergence des réseaux 5G et la demande de services plus interactifs, nous nous attendons à une augmentation continue des services basés sur WebRTC au cours de l'année à venir.