Table des matières

, , , , , ,

Flumotion

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.

Pré-requis

Installation

A partir des dépôts

Il suffit d'installer le paquet flumotion.

Pour Ubuntu 9.10 et antérieur, il est possible que le paquet soit défectueux. Reportez-vous à l'installation à partir des source si tel est le cas.

A partir des sources

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 ~/

Configuration de base

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

Modifier le mot de passe

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.

Lancement au démarrage

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

Utilisation

Envoi du flux

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).

Réception

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.

Accès à distance

Depuis le réseau local

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.

Le nom d'utilisateur et le mot de passe transitera en clair sur le réseau local.

A partir d'internet, avec SSL

FIXME Je n'ai pas réussi à faire fonctionner totalement cette méthode: lorsque j'ai fini de configurer le flux vidéo, le composant http-porter est “triste”, et le flux n'est pas envoyé sur internet.

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

A partir d'internet, avec SSH

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)

Désinstallation

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

Voir aussi


Contributeurs principaux : kimented.

Basé sur « Flumotion, le streaming libre » par NicoLargo.

1) La méthode diffère selon la marque de votre routeur, mais il suffit de faire une petite recherche sur internet ;)