Depuis 2011, le projet WebRTC a connu des hauts et des bas pour venir à bout de la communication en temps réel depuis un navigateur. Des outils ont été remplacés au profit de nouveaux outils plus performants, qu’il s’agisse d’outils pour traverser les couches de NAT, d’outils pour compresser les flux de données ou tout simplement des outils pour rendre la tâche des développeurs plus facile.
Trickle ICE
Nous savons que l’ICE est une méthode utilisée pour permettre la connexion de deux utilisateurs. Il a pour rôle de rassembler les candidats disponibles, c’est-à-dire les adresses IP, adresses relayées ou réfléchies, et de vérifier ensuite la connectivité jusqu’à ce qu’un chemin de connexion soit trouvé. C’est un processus qui nécessite du temps.
En général, l’ICE met environ 10 secondes pour effectuer ses tâches. Afin de remédier à cette latence, un nouveau mécanisme a été ajouté : Trickle ICE. Cette nouvelle méthode permet d’envoyer des candidats à vérifier sans attendre la collection de tous les autres candidats.
Unified plan
Pour pouvoir envoyer une vidéo et partager l’écran, il convient de signaler les sources multimédia. Le nouveau mécanisme choisi dans le cadre du WebRTC est le « Unified Plan ». Il remplace le « Plan B ».
Les outils de compression
Parce que les fichiers audio et vidéo bruts sont trop volumineux, ils nécessitent une compression. Voici donc de nouveaux codecs multimédia plus performants :
a) VP9
Développé par Google, le codec vidéo VP9 assure la réduction du débit binaire des transmissions vidéo de 50 % sans que la qualité des images soit mise en péril. Il propose alors des améliorations par rapport à son prédécesseur VP8. Il est le principal concurrent du codec H.265.
b) AV1
Créé par l’Alliance for Open Media, l’AV1 est un codec vidéo qui compte prendre la place du VP9. Il est libre de droits et propose de meilleures fonctionnalités. Avec ce codec, les médias compressés n’occupent pas trop d’espace de stockage et ils ne nécessitent pas non plus trop de bande passante.
c) Opus
C’est un nouveau codec vocal qui doit impérativement être implémenté dans le WebRTC. Il se distingue par sa capacité à supporter en « narrowband » (bande étroite) et en « wideband » tout en utilisant du faible débit. Il est défini dans le RFC 6716 de l’IETF.
Les extensions
Afin d’aider les développeurs dans l’amélioration de leurs applications sous WebRTC, les navigateurs comme Firefox et Google Chrome proposent des extensions :
a) Prevent WebRTC leaks
Il s’agit d’une extension officielle qui aide à prévenir les fuites WebRTC, et ce, en contrôlant les paramètres de confidentialité masqués du WebRTC. Elle est compatible avec les nouvelles versions Chrome.
b) DevTools panel
C’est un outil dédié aux développeurs afin de leur aider à comprendre les problèmes de lecture des médias. Il fournit donc des détails techniques sur l’état actuel de la lecture ainsi que sur chaque PeerConnection et GUM.