Flumotion est un logiciel libre permettant d'envoyer un flux vidéo et audio à travers le réseau, que ce soit à partir d'un périphérique de capture (Webcam, tuner TV…) ou de fichiers (Video On Demand). Il fonctionne en tant que démon, ne nécessitant ainsi pas de serveur graphique sur l'ordinateur diffusant le flux.
Il suffit d'installer le paquet flumotion.
Le logiciel est présent dans les dépôts Ubuntu, cependant le paquet semble défectueux pour certaines versions. Je vais donc vous présenter ici l'installation par compilation des sources.
Premièrement, installer les diverses dépendances suivantes : python-dev python-kiwi python-gtk2 python-gtk2-dev python-twisted python-imaging checkinstall apache2-utils
Il faut ensuite récupérer les sources de la dernière version, et passer à la compilation. Lors de la rédaction de cette page, c'était la version 0.6.1, il vous faudra adapter les commandes ci-dessous si votre version diffère.
cd /usr/src sudo wget http://www.flumotion.net/src/flumotion/flumotion-0.6.1.tar.bz2 sudo bzip2 -d flumotion-0.6.1.tar.bz2 sudo tar xvf flumotion-0.6.1.tar cd flumotion-0.6.1 ./configure make sudo checkinstall
L'execution de cette dernière commande est assez longue: elle crée un paquet Debian, avant de l'installer. Il vous sera posé plusieurs questions, il suffira de laisser les réponses par défaut, en appuyant seulement sur la touche entrée. Le fichier deb ainsi créé est à conserver, il vous sera utile pour désinstaller le programme, ou pour le mettre à jour. Placez le dans un endroit ou vous le retrouverez, par exemple votre dossier personnel :
mv /usr/src/flumotion-*/flumotion*.deb ~/
Avant le premier lancement, il faut créer un répertoire où placer le fichier de configuration. Nous récupèreront le fichier par défaut avec ces commandes:
sudo mkdir /usr/local/flumotion cd /usr/local/flumotion sudo cp /usr/src/flumotion-0.6.1/conf/managers/default/planet.xml manager.xml
Par défaut, le fichier de configuration définit un utilisateur nommé “user” avec un mot de passe “test”. Pour une utilisation basique, il est possible de laisser cette configuration, et passer directement à la section “Utilisation”.
Pour générer une nouvelle paire utilisateur/mot de passe, il faut utiliser cette ligne de commande, en remplaçant “mon_utilisateur” par le nouveau nom d'utilisateur:
htpasswd -c /tmp/pw.tmp mon_utilisateur
Cela crée un fichier temporaire contenant le mot de passe, taper cette commande pour l'afficher:
cat /tmp/pw.tmp
Il faut ensuite placer ce couple dans le fichier de configuration. Ouvrez ce fichier /usr/local/flumotion/manager.xml
avec les droits d'administrateur, et remplacez la ligne “user:PSfNpHTkpTx1M” par ce que vous avez récupéré précédemment.
Par défaut, les démons nécessaire à l'envoi du flux vidéo sont à lancer manuellement avant chaque utilisation. Il est cependant plus pratique que ceux-ci soient lancés au démarrage pour une utilisation intensive. Pour cela, créez le fichier /etc/init.d/flumotion
avec les droits d'administrateur.
Dans ce fichier, copiez/collez tout ceci:
#! /bin/sh -e # # Start the Flumotion Manager and Worker # # Author: Nicolas Hennion <nicolas-pasdespam-@nicolargo.com> # # Distributed under GPL licence # set -e PATH=/bin:/usr/bin:/sbin:/usr/sbin MANAGER=/usr/local/bin/flumotion-manager MANAGEROPT="-T tcp /usr/local/flumotion/manager.xml" MANAGERLOG=/var/log/flumotion-manager WORKER=/usr/local/bin/flumotion-worker WORKEROPT="-T tcp -u user -p test" WORKERLOG=/var/log/flumotion-worker test -x $MANAGER || exit 0 test -x $WORKER || exit 0 . /lib/lsb/init-functions case "$1" in start) log_daemon_msg "Starting Flumotion Manager" "flumotion-manager" start_daemon $MANAGER $MANAGEROPT > $MANAGERLOG & log_end_msg $? log_daemon_msg "Starting Flumotion Worker" "flumotion-worker" start_daemon $WORKER $WORKEROPT > $WORKERLOG & log_end_msg $? ;; stop) WORKERPID=`echo $(ps ax | grep "flumotion-worker" | awk '{ print $1 }' | head -n 1)` log_daemon_msg "Stopping Flumotion Worker" "flumotion-worker" kill $WORKERPID log_end_msg $? MANAGERPID=`echo $(ps ax | grep "flumotion-manager" | awk '{ print $1 }' | head -n 1)` log_daemon_msg "Stopping Flumotion Manager" "flumotion-manager" kill $MANAGERPID log_end_msg $? ;; force-reload|restart) $0 stop $0 start ;; *) echo "Usage: /etc/init.d/flumotion {start|stop|restart|force-reload}" exit 1 ;; esac exit 0
Rendez ensuite ce fichier exécutable.
sudo chmod +x /etc/init.d/flumotion
Il faut ensuite préciser qu'on veut exécuter ce fichier à chaque démarrage.
sudo ln -s /etc/init.d/flumotion /etc/rc2.d/S99flumotion
Pour information, vous pouvez également lancer, relancer ou stopper les démons en lançant ces commandes:
sudo /etc/init.d/flumotion start sudo /etc/init.d/flumotion restart sudo /etc/init.d/flumotion stop
Si vous n'avez pas paramétré les démons pour qu'ils se lancent au démarrage, il va falloir les lancer maintenant. Ouvrez un terminal, et lancez cette commande:
flumotion-manager -T tcp -d 3 /usr/local/flumotion/manager.xml
Ouvrez un deuxième terminal, où vous lancerez cette commande:
flumotion-worker -T tcp -d 3 -u user -p test
Vous pouvez maintenant lancer l'interface de configuration, qui est accessible dans le menu Applications → Son et vidéo, ou bien avec cette commande:
flumotion-admin
Dans la fenêtre qui s'ouvre, choisir “Connexion à un manager actif” et cliquer sur suivant.
Décocher “Connexion sécurisée via SSL” et laisser la configuration par défaut (hôte localhost et port 8642), puis cliquer sur suivant.
Entrez maintenant le nom d'utilisateur et le mot de passe du manager (respectivement “user” et “test” si vous ne les avez pas modifié).
Il vous reste maintenant à configurer le flux vidéo et audio. Dans le cas de l'utilisation d'une webcam, choisissez “Créer un flux direct”, sélectionnez “Web camera”, sélectionnez ensuite votre périphérique et ses propriétés. La surimpressions permet l'affichage d'un logo sur la vidéo (consomme beaucoup de puissance processeur, à éviter sur des machines faibles). Choisissez votre format de sortie (ogg Theora par défaut), puis son débit ou sa qualité (à ajuster en fonction de votre connexion internet). Cochez “Diffusion sur http” pour envoyer la vidéo sur le réseau, choisissez le point de montage et le port, puis validez.
Si tout va bien, vous obtenez un groupe de “composant contents” :)
Si ça ne fonctionne pas, cliquer sur l'icone “baguette magique” pour relancer l'assistant, et recommencez la configuration en modifiant les paramètres de la webcam, ou en choisissant “Test video producer” à la place de webcam (utilisation d'une image de test).
Pour accéder finalement au flux vidéo, ouvrez cette adresse avec votre lecteur vidéo favori (Totem, VLC voire Firefox si vous avez choisi ogg/theora…): http://localhost:port/point_de_montage. Si par exemple vous avez choisi le port 8800 et / en point de montage, vous pouvez accéder au flux à cette adresse: http://localhost:8800/.
Si vous voyez l'image, vous pouvez maintenant songer à la rendre accessible via le réseau. Il vous faut pour cela ouvrir le port que vous avez choisi dans votre pare-feu en TCP (si vous avez un pare feu d'activé), et paramétrer votre routeur1) pour router le port vers votre ordinateur (inutile si vous utilisez un simple modem).
Le flux devrait maintenant être accessible au reste de monde à une adresse de ce type: http://votre_ip_publique:le_port/point_de_montage
Pour intégrer le flux dans une page web, il y a plusieurs solutions: utiliser l'applet java proposé sur le site de flumotion, utiliser les balises <video> supportées par Firefox 3.5+, vous servir des balises <object> de HTML4 pour appeler un plugin externe (Windows Media Player, VLC…), ou adapter une solution accessible au plus grand nombre.
Pour administrer flumotion depuis une autre machine, il faut que les démons soient lancés sur la machine devant diffuser la vidéo (serveur), et que le programme soit installé sur les deux machines (de préférence dans la même version). Pour une utilisation sur votre réseau local, il faut que le port 8642 soit ouvert dans le pare-feu du serveur (par défaut, le pare-feu est inactif sous ubuntu). Quand vous lancerez l'interface d'administration, il faudra choisir l'adresse ip locale du serveur en tant qu'hôte, et le port 8642.
Pour accéder au serveur depuis internet, il faudra configurer votre routeur pour rediriger le port 7531 vers l'adresse ip du serveur, et ouvrir ce port dans son pare-feu. Lors du lancement des démons, il faudra préciser qu'on veut utiliser SSL, en utilisant ces commandes:
flumotion-manager -T ssl -d 3 /usr/local/flumotion/manager.xml flumotion-worker -T ssl -d 3 -u user -p test
Si vous avez configuré le lancement au démarrage, il faudra modifier le script aux ligne 14 et 18, comme ceci:
MANAGEROPT="-T ssl /usr/local/flumotion/manager.xml" WORKEROPT="-T ssl -u user -p test"
Il suffit maintenant de lancer l'interface d'administration en spécifiant l'adresse ip publique de la machine “serveur”, avec le port 7531
Cette méthode nécessite d'avoir un serveur ssh installé et configuré sur le serveur, ainsi qu'un serveur graphique. Connectez vous au serveur avec ssh, en tapant cette commande:
ssh -XC -p 22 utilisateur@80.134.32.5
Dans cette commande, -X permet le lancement d'applications graphiques à travers ssh, et -C active la compression (Voir la documentation de ssh pour plus d'informations). Une fois connecté, vous pouvez lancer l'interface de configuration.
flumotion-admin
Vous pouvez maintenant administrer flumotion comme si vous étiez sur le serveur (avec hôte localhost et port 8642)
Si vous avez suivi la méthode d'installation par compilation, et conservé le fichier deb généré à l'installation, vous pourrez désinstaller flumotion comme ceci:
dpkg -r flumotion*.deb