WebRTC est désormais une norme W3C et IETF

Brève présentation de l'historique, 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 marquent l'achèvement de l'une des normes peut-être les plus importantes pendant la pandémie: WebRTC.

WebRTC est une plate-forme qui offre 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 se compose d'un ensemble complet de technologies et de normes. Google a lancé 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 les navigateurs s'appuie sur une technologie propriétaire sous licence. Différents produits ont été conçus grâce à cette technologie, y compris Hangouts. Google a ensuite racheté les entreprises auprès desquelles la technologie était disponible sous licence et l'a rendue disponible en tant que projet WebRTC Open Source. Ce codebase est intégré à Chrome et utilisé par la majorité des applications utilisant 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 présenté les appels vidéo entre leurs navigateurs. Avec l'évolution de la norme, de nombreux débats sur l'architecture ont entraîné des différences d'implémentation entre les navigateurs, et mis en doute la compatibilité et l'interopérabilité. La plupart de ces désaccords ont finalement été résolus à mesure que la norme s'est 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 et d'outils permettant d'assurer la compatibilité, et les navigateurs ont largement adapté leurs implémentations en conséquence. C'est la fin d'une période difficile où les développeurs Web ont dû continuellement adopter leurs services pour s'adapter à différentes implémentations de navigateurs et à différentes modifications des spécifications.

Architecture et fonctionnalité

L'API RTCPeerConnection est la partie centrale de la spécification WebRTC. RTCPeerConnection consiste à connecter deux applications sur des points de terminaison différents 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 à getDisplayMedia pour capturer le contenu de l'écran. WebRTC vous permet d'envoyer et de recevoir des flux comprenant 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 mise en œuvre 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 de la vidéo. 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 les technologies existantes, des codecs vidéo (VP8, H264), du balayage réseau (ICE), du transport (RTP, SCTP) aux protocoles de description de média (SDP). Ces informations sont liées par plus de 50 RFC.

Cas d'utilisation: quand l'opération ne prend que quelques millisecondes

WebRTC est largement utilisé dans les applications urgentes telles que la chirurgie à distance, la surveillance du système et le contrôle à distance des voitures autonomes, et 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'appel vidéo basés sur un navigateur d'entreprises telles que Google, Facebook, Cisco, RingCentral et Jitsi utilisent WebRTC. Google Workspace et NVIDIA GeForce NOW utilisent WebRTC pour transférer immédiatement le flux de jeu du cloud vers le navigateur Web.

La pandémie se concentre sur les performances des appels vidéo

L'année dernière, WebRTC a vu son utilisation multipliée par 100 dans Chrome en raison de l'augmentation du nombre d'appels vidéo depuis le navigateur. Conscients que les appels vidéo sont devenus un élément essentiel de la vie de nombreux utilisateurs pendant la pandémie, les fournisseurs de navigateurs ont commencé à optimiser les technologies dont dépendent les appels vidéo. Cela était particulièrement important, car les ressources exigeant de grandes réunions et les effets vidéo dans les visioconférences sont devenus plus fréquents lorsque les employés et les élèves ont commencé à travailler et à étudier à domicile. L'année dernière, Chrome est devenu jusqu'à 30% plus adapté à la batterie pour les appels vidéo, avec d'autres optimisations à 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 particulier pour s'assurer qu'ils respectent la norme désormais formalisée.

L'avenir de WebRTC

Bien que WebRTC soit désormais considéré comme une norme W3C, les améliorations continuent d'être apportées. Le nouveau codec vidéo AV1, qui permet d'économiser jusqu'à 50% de la bande passante, est désormais disponible dans WebRTC et dans les navigateurs Web. Les améliorations continues apportées au code base Open Source devraient encore réduire les délais 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 d'API existantes permettant de mieux contrôler les fonctionnalités existantes telles que le codage vidéo évolutif, ainsi que d'API donnant 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 et hautes performances. Avec l'émergence des réseaux 5G et la demande de services plus interactifs, nous nous attendons à voir une augmentation continue des services qui s'appuient sur WebRTC dans l'année à venir.