Note de contexte, ajoutée depuis : ce billet de 2012 parle de **Baboon.fr**, le site de chat que je développais et hébergeais — de l'ordre de 10 000 connexions par jour — et de sa fonction webcam, que nous avions construite nous-mêmes. Flash et ses protocoles sont morts depuis. L'arbitrage, lui, n'a pas vieilli : pair-à-pair ou serveur central, quand on ne maîtrise pas ce qui tourne chez l'utilisateur. Trois semaines plus tôt, je pariais justement sur la mort de Flash : HTML5 vs Flex.
Depuis plusieurs mois, les utilisateurs des interfaces de dialogue en direct (10 000 connexions / jour) utilisaient le protocole RTMFP pour notre système « webcam maison ».
Il y a plusieurs avantages à utiliser ce protocole :
- Un coût de bande passante réduit.
- Un partage intelligent d'envoi de flux entre utilisateurs.
- Une nouvelle approche expérimentale, nouveau protocole, utilisation de Cirrus en version BETA.
Pour ceux qui ne connaissent pas ce protocole :
RTMFP est un protocole propriétaire développé par Adobe. C'est un récent protocole (2010) de communication qui permet à l'utilisateur final d'établir une connexion en P2P entre 2 clients. Ce protocole est disponible à partir du Flash Player 10 (pour une application web) ou Adobe Air 1.5 (pour une application de bureau). Les deux clients communiqueront ensemble sans passer par un serveur intermédiaire (contrairement aux autres protocoles énoncés dans la partie « Variantes » de ce rapport). RTMFP transmet ses données par UDP. Cela permet également d'augmenter la vitesse de transmission. UDP est plus efficace (mais moins fiable) et permet d'envoyer et recevoir des données vidéo et audio sur Internet.
C'est un protocole destiné à la communication en temps réel, tels que les réseaux sociaux et les jeux multijoueurs. Cela permet de réduire la charge de la bande passante des serveurs. Pour un nombre considérable d'utilisateurs en ligne, cet avantage n'est pas à négliger. RTMFP est capable de rétablir une connexion rapidement après des mini-coupures. Un second avantage, les sessions actives sont maintenues même si un client change d'adresse IP.
Cirrus est un service en version « BETA » qui permet d'établir des connexions entre différentes plateformes Adobe Flash. Cirrus a été introduit en 2008. Ce service utilise les points de terminaison RTMFP. Cirrus n'est pas un serveur de streaming, il ne permet donc pas de diffuser du son ou de la vidéo. C'est un service spécifique et (actuellement) obligatoire pour l'utilisation du protocole RTMFP.
Les problèmes rencontrés avec ce protocole :
Il faut absolument une version de Flash à jour. Malheureusement la plupart des internautes ont quasiment tous le Flash Player d'installé mais rarement la dernière version. À cause de ce problème, le système de webcam ne fonctionnait pas. Il y avait d'autres problèmes : connexion trop lente, firewall sur la route, …
Pour essayer de contrer un maximum de problèmes, nous avons décidé d'utiliser le protocole RTMP.
Qu'est-ce que RTMP ?
Real-Time Messaging Protocol était le premier choix pour la réalisation de l'envoi de flux audio et vidéo. C'est pour cette raison que nous allons nous y attarder.
RTMP est un protocole d'Adobe pour le streaming audio et vidéo entre Flash Player. Adobe a publié sa spécification. Le principal désavantage de l'utilisation de ce protocole est l'utilisation d'un serveur de streaming.
Actuellement, il y a deux serveurs de streaming qui sont utilisés. Celui d'Adobe, FMS, est onéreux. Dans le cadre d'un travail de fin d'études, il est inconcevable de débourser plus de 10 000 € pour une licence. Le second choix est l'utilisation d'un serveur « open source », dénommé « Red5 ».
Red5 est un serveur de streaming (audio et vidéo) multi-utilisateurs, disponible gratuitement en téléchargement. Red5 requiert le protocole RTMP, le serveur d'application est en Java avec un serveur Tomcat utilisant le framework « Spring ».