L'API repose sur une architecture triangulaire puis pair à pair dans laquelle un serveur central est utilisé pour mettre en relation deux pairs désirant échanger des flux de médias ou de données qui échangent ensuite sans autre relais. Cette architecture et la pile de protocoles utilisée posent des questions de sécurité et d'utilisation en relation avec d'autres technologies (comme les NAT ou les pare-feux) qui sont pour la plupart en cours de résolution par l'IETF et le W3C.
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 fonctionner dans le navigateur. La génération précédente de produits basés sur un navigateur reposait sur une technologie propriétaire sous licence. Différents produits ont été conçus avec cette technologie, notamment Hangouts. Google a ensuite acquis les entreprises auprès desquelles il accordait une licence pour la technologie et l'a mise à disposition dans le cadre du projet WebRTC open source.
Cette base de code est intégrée à Chrome et utilisée 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 au W3C et à l'IETF.
En 2013, Mozilla et Google ont présenté des appels vidéo entre leurs navigateurs. Au cours de l'évolution de la norme, de nombreuses discussions architecturales ont conduit à des différences d'implémentation entre les navigateurs et ont remis en question la compatibilité et l'interopérabilité. La plupart de ces désaccords ont finalement été réglés au fur et à mesure que la norme était finalisée ces dernières années. La spécification WebRTC est désormais accompagnée d'un ensemble complet de tests de plateforme et d'outils pour 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 différentes implémentations de navigateur et modifications de spécifications.
Architecture et fonctionnalité
L'API RTCPeerConnection est la partie centrale de la spécification WebRTC. RTCPeerConnection traite la connexion de deux applications sur différents points de terminaison pour une communication à l'aide d'un protocole peer-to-peer. L'API PeerConnection interagit étroitement avec getUserMedia pour accéder à la caméra et au microphone, et 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 le DataChannel. La fonctionnalité multimédia de traitement, d'encodage et de décodage audio et vidéo constitue le cœur de toute implémentation WebRTC. WebRTC prend en charge 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 libre VP8 de Google et 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 technologies existantes, depuis les codecs vidéo (VP8, H264), la traversée de réseau (ICE), le transport (RTP, SCTP), jusqu'aux protocoles de description de média (SDP). Ceci est lié dans plus de 50 RFC.
Cas d'utilisation: quand c'est une question de millisecondes
WebRTC est largement utilisé dans les applications à temps critique telles que la chirurgie à distance, la surveillance du système et le contrôle à distance de 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'appels vidéo basés sur un navigateur d'entreprises telles que Google, Facebook, Cisco, RingCentral et Jitsi utilisent WebRTC. Google Stadia et NVidia Geforce utilisent maintenant WebRTC pour transférer le flux de jeu du 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, WebRTC a connu une augmentation de 100 fois de ses cas d'utilisation sur Chrome en raison de l'augmentation des appels vidéo depuis le navigateur. Reconnaissant que les appels vidéo sont devenus une partie fondamentale de la vie de nombreuses personnes 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 grandes réunions exigeantes en ressources et les effets vidéo dans les réunions vidéo sont devenus plus courants lorsque les employés et les étudiants ont commencé à travailler et à étudier à domicile. Au cours de l'année écoulée, Chrome est devenu jusqu'à 30 % plus convivial 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 dans leur implémentation de WebRTC pendant la pandémie, en particulier en s'assurant qu'ils adhèrent à la norme désormais formalisée.
« Ce résultat remarquable est plus que jamais utile. Confronté à une pandémie mondiale du coronavirus COVID-19, le monde passe de plus en plus en mode virtuel. Ceci rend le Web d'autant plus crucial à la société dont il est le support pour le partage d'informations, les communications en temps réel et le divertissement », a déclaré le Dr Jeff Jaffe, PDG du W3C. « Il est gratifiant de voir nos technologies jouer un rôle clé dans la mise en place d'une infrastructure numérique d'une telle importance. La combinaison de la portée universelle du Web et de la richesse des conversations audio et vidéo en direct a remodelé la façon dont le monde communique. »
« La voix et la vidéo sur IP ont révolutionné la façon dont les gens communiquent dans le monde entier, », a déclaré Alissa Cooper, présidente de l'IETF. « L'intégration de ces technologies dans la plateforme Web a considérablement élargi leur portée. C'est grâce à une collaboration étroite entre l'IETF et le W3C pour standardiser ces technologies. WebRTC a permis à des milliards de personnes d'entrer en contact et de discuter entre elles pendant la pandémie COVID-19, quel que soit l'appareil utilisé ou l'endroit. »
Des systèmes de communication audio-vidéo en direct sur n'importe quel site Web, n'importe quelle application Web
Les technologies WebRTC fournissent les éléments de base à partir desquels les développeurs Web et d'applications peuvent ajouter de manière transparente le chat vidéo à une gamme d'applications, y compris celles de télé-éducation et de télésanté, de divertissement et de "gaming", ainsi que de collaboration professionnelle.
Avec ces bases normalisées et déployées libres de droits dans les navigateurs Web et autres appareils et plateformes, la mise en place d'un système de communication audio-vidéo sécurisée avec WebRTC est devenue une fonction intégrée, ce qui élimine la nécessité d'installer des plugins ou de télécharger des applications distinctes.
WebRTC est massivement déployé en tant que plateforme de communication et rend possibles les systèmes de vidéoconférence et de collaboration sur tous les principaux navigateurs, à la fois sur ordinateur et sur mobile. Des milliards d'utilisateurs peuvent interagir maintenant que WebRTC rend le chat vidéo en direct plus facile que jamais sur le Web. Que ce soient les startups ou bien les entreprises de grande échelle, aussi bien dans les produits commerciaux que dans les projets open source, WebRTC a considérablement étendu la capacité de déployer des solutions d'interaction en temps réel pour les clients et les utilisateurs.
Un impact positif et opportun dans le monde réel
L'année 2020 a montré à la fois à quel point WebRTC est déjà primordial dans un monde où les voyages et les contacts physiques se sont vus limités, ainsi que les nombreuses améliorations qui peuvent être apportées à la technologie pour répondre aux nouveaux usages qui ont émergé.
Les entreprises et les particuliers s'appuient sur WebRTC pour une multitude d’opérations, ce qui augmente son adoption. Les entreprises tirent parti de WebRTC pour mener des formations, des entretiens, leur planification stratégique ou comme substitut aux réunions en personne pour rester connecté par le biais d'"happy hours" ou autres interactions sociales ; WebRTC pourvoit non seulement au remplacement des réunions en personne, mais aussi des interactions humaines dans l'entreprise. Les domaines tels que la santé et la défense utilisent WebRTC pour la formation. Les écoles et les universités sont passées à des plateformes d'apprentissage virtuelles. Le "cloud gaming" et les réseaux sociaux utilisent le streaming en direct et les émissions interactives. L'industrie du divertissement expérimente avec le retour du public dans les studios en le faisant à distance. Les clubs sportifs tentent de recréer l'expérience du stade en utilisant WebRTC. Les familles et les amis utilisent quotidiennement des produits conçus tout ou en partie avec WebRTC.
L'avenir du WebRTC
Alors que WebRTC est désormais une norme W3C, les améliorations se poursuivent. Le nouveau codec vidéo AV1, qui économise jusqu'à 50% de la bande passante, devient disponible dans le WebRTC et les navigateurs Web. Les améliorations continues de la base de code open source devraient réduire davantage les délais et améliorer la qualité de la vidéo pouvant être diffusée.
Le groupe de travail WebRTC planche déjà sur les prochaines fonctionnalités qu’il faudrait implémenter :
- Chiffrement de bout en bout dans les visioconférences via serveur
- Traitement en direct des flux audio et vidéo, y compris via le machine learning
- Internet des objets (par exemple lorsqu'un capteur IdO maintient une connexion et cherche à minimiser la consommation d'énergie)
Le groupe de travail WebRTC se penche sur des cas d'utilisation existants et nouveaux, visant à documenter la gamme complète des besoins et leur priorité. Le W3C a récemment commencé à travailler sur WebTransport et Web Codecs, ce qui promet d'apporter les avantages du streaming à faible latence à l'écosystème des médias et du divertissement.
WebRTC NV rassemble l'initiative de créer des API supplémentaires pour permettre de nouveaux cas d'utilisation. Celles-ci consistent en des extensions aux API existantes pour donner plus de contrôle sur 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. Ce dernier donne plus de flexibilité aux développeurs Web pour innover en intégrant des composants WebAssembly personnalisés hautes performances. Avec les réseaux 5G émergents et la demande de services plus interactifs, nous nous attendons à voir une augmentation continue des services en plus du WebRTC dans l'année à venir.
Source : W3C