WebRTC est désormais une norme W3C et IETF

Bref aperçu 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 son utilité, sa cohérence et sa compatibilité entre les navigateurs. Aujourd'hui, le W3C et l'IETF ont marqué l'achèvement probablement de l'une des normes les plus importantes pendant la pandémie: WebRTC.

Historique

WebRTC est une plate-forme offrant aux navigateurs, aux applications mobiles et aux applications de bureau des fonctionnalités de communication en temps réel, généralement utilisées pour les appels vidéo. La plate-forme comprend un ensemble complet de technologies et de normes. Google a inventé l'idée de créer WebRTC en 2009, comme 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 s'appuyait sur une technologie propriétaire sous licence. Divers produits ont été conçus à l'aide de cette technologie, y compris Hangouts. Google a ensuite racheté les entreprises auprès desquelles la technologie lui avait été concédée sous licence et l'a mise à disposition en tant que projet WebRTC Open Source. Ce codebase est intégré à Chrome et utilisé par la majorité des applications via WebRTC. En collaboration 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 dans le W3C et l'IETF. En 2013, Mozilla et Google ont démontré les appels vidéo entre leurs navigateurs. Au cours de l'évolution de la norme, de nombreuses discussions sur l'architecture ont donné lieu à des différences d'implémentation entre les navigateurs, ainsi qu'à remettre en question la compatibilité et l'interopérabilité. La plupart de ces désaccords ont finalement été résolus lorsque la norme a été finalisée au cours des dernières années. La spécification WebRTC est désormais accompagnée d'un ensemble complet de tests de plate-forme. Les outils permettant de gérer la compatibilité et les navigateurs ont largement adapté leurs implémentations en conséquence. Cela met fin à une période difficile où les développeurs Web devaient continuellement adopter leurs services pour répondre à différentes implémentations de navigateur et 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 communiquer à 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 à 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. Les fonctionnalités multimédias de traitement, d'encodage et de décodage des contenus audio et vidéo constituent 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 sont nécessaires pour prendre en charge le codec vidéo VP8 sans frais de Google et le codec H.264 pour le traitement des vidéos. Les connexions WebRTC sont toujours chiffrées, ce qui est réalisé via deux protocoles existants: DTLS et SRTP. WebRTC s'appuie fortement sur les normes et technologies existantes, des codecs vidéo (VP8, H264), le balayage de réseau (ICE), le transport (RTP, SCTP) aux protocoles de description multimédia (SDP). Ces données sont regroupées dans plus de 50 RFC.

Cas d'utilisation: quelques millisecondes

WebRTC est largement utilisé dans les applications urgentes telles que la chirurgie à distance, la surveillance système et le contrôle à distance de voitures autonomes, ainsi que les appels vocaux ou vidéo basés sur UDP où la mise en mémoire tampon n'est pas possible. Presque tous les services d'appels vidéo d'entreprises telles que Google, Facebook, Cisco, RingCentral et Jitsi utilisent WebRTC. Google Stadia et NVIDIA GeForce NOW utilisent WebRTC pour transférer rapidement le flux de jeu du cloud vers le navigateur Web.

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

Au cours de l'année écoulée, WebRTC a enregistré une utilisation multipliée par 100 dans Chrome en raison d'une augmentation des appels vidéo depuis le navigateur. Conscients que les appels vidéo sont devenus un élément essentiel de la vie de nombreuses personnes pendant la pandémie, les fournisseurs de navigateurs ont commencé à optimiser les technologies dont dépend les appels vidéo. Ce point était particulièrement important, car les grandes réunions gourmandes en ressources et les effets vidéo dans les visioconférences devenaient de plus en plus courants lorsque les employés et les étudiants commençaient à travailler et à étudier à domicile. L'année dernière, Chrome est devenu jusqu'à 30% plus compatible avec la batterie pour les appels vidéo, et d'autres optimisations sont à venir pour les cas d'utilisation intensive. Mozilla, Apple et Microsoft ont tous apporté des améliorations significatives à leur implémentation de WebRTC pendant la pandémie, en s'assurant notamment qu'elles respectent la norme désormais formalisée.

L'avenir de WebRTC

Si WebRTC est désormais devenu une norme W3C, les améliorations se poursuivent. Le nouveau codec vidéo AV1, qui économise jusqu'à 50% de la bande passante, est disponible dans WebRTC et les navigateurs Web. Les améliorations continues du code source Open Source devraient encore réduire le délai et améliorer la qualité des vidéos pouvant être diffusées en streaming. WebRTC NV rassemble l'initiative de créer des API supplémentaires pour permettre de nouveaux cas d'utilisation. Il s'agit d'extensions des API existantes permettant de mieux contrôler les fonctionnalités existantes telles que le codage vidéo évolutif, ainsi que des API qui donnent accès à des composants de niveau inférieur. Cette dernière 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 constante des services qui seront développés en plus de WebRTC dans l'année à venir.