VOD avec Flumotion

Date: 25/06/2008 | Catégories: Open-source,Web | Tags: ,,

Il y a quelques temps, je vous avez parlé de Flumotion, une solution libre de streaming audio/vidéo. Nous allons nous re-pencher sur cette solution en nous focalisant sur l'utilisation de Flumotion pour un serveur de vidéo à la demande (VOD).

d05.jpg

Le but étant de diffuser vers des clients des vidéos stockés sur un serveur. Le client accédera au serveur via un navigateur Web (pour avoir la liste des vidéos disponibles) et plugin VLC (pour lire les vidéos). Sur ce dernier point, il existe également une applet Java (Cortado) que vous pouvez ajouter à votre serveur pour vous passer du plugin VLC.

Installation de Flumotion

Si ce n'est pas déjà fait, je vous laisse installer Flumotion en suivant cette procédure.

Configuration de Flumotion pour de la VOD

Nous allons partir d'un fichier de configuration fournie dans les sources: /usr/src/flumotion-0.5.2/conf/examples/ondemand.xml.

sudo cp /usr/src/flumotion-0.5.2/conf/examples/ondemand.xml /usr/local/flumotion/vod.xml

Nous allons éditer ce fichier pour que Flumotion puisse diffuser des vidéos stockées dans le répertoire /home/nicolargo/videos (à adapter à votre configuration) en utilisant le port TCP/8800:

<?xml version="1.0" ?>

<planet>

<atmosphere>

<component name="ondemand" project="flumotion" type="http-server" worker="localhost">

<property name="path">/home/nicolargo/videos/</property>

<property name="port">8800</property>

</component>

</atmosphere>

</planet>

Il faut ensuite lancer flumotion-admin et importer le fichier vod.xml:

SCREENSHOT

Premier test

Flumotion permet de streamer des fichiers de différents types. Pour ce premier test, je vous propose donc de télécharger des vidéos libres au format OGG/Theora sur le site suivant: Big Buck Bunny.

Par exemple:

cd /home/nicolargo/videos
wget http://mirror.bigbuckbunny.de/peach/bigbuckbunny_movies/big_buck_bunny_480p_stereo.ogg

et ensuite créer un fichier d'index:

# vi /home/nicolargo/videos/index.html

<html>

<head>

<title>Liste des vidéos disponibles</title>

</head>

<body>

<a href="http://192.168.29.222:8800/big_buck_bunny_480p_stereo.ogg">Big Buck Bunny (480p)</a><br/>

</body>

</html>

Nous pouvons alors tester la solution en saisissant l'URL suivante dans un navigateur disposant du plugin VLC:

http://<adresseipserveur>:8800/index.html


Analyse du trafic réseau

Protocole: TCP du serveur vers le client (port source: 8800, port destination: dynamique)

Mise en place de l'applet Java Cortado

Dans notre configuration, il faut que les clients disposent d'un plugin (je conseille VLC plugin pour Firefox) pour lire les vidéos diffusées par le serveur Flumotion. Pour palier à ce problème, il est possible d'inclure une applet Java Cortado au serveur Flumotion. Ainsi, n'importe quel navigateur compatible Java pourra lire les vidéos.

Il faut se rendre sur cette page pour télécharger la dernière version de l'applet: cortado-ovt.

cd /home/nicolargo/videos/
wget http://www.flumotion.net/jar/cortado/cortado-ovt-stripped-0.2.2.jar
ln -s cortado-ovt-stripped-0.2.2.jar cortado.jar

Puis créer un fichier applet.html:

<html>

<head>

<title>VOD</title>

</head>

<body>

<applet code="com.fluendo.player.Cortado.class"

archive="cortado.jar"

width="864" height="480">

<param name="url" value="http://192.168.29.222:8800/big_buck_bunny_480p_stereo.ogg"/>

<param name="local" value="false"/>

<param name="duration" value="232"/>

<param name="keepAspect" value="true"/>

<param name="video" value="true"/>

<param name="audio" value="true"/>

<param name="bufferSize" value="200"/>

<param name="userId" value="user"/>

<param name="password" value="test"/>

</applet>

</body>

</html>

Il ne reste plus qu'a tester l'applet en saisissant l'URL suivante:

http://<adresseipserveur>:8800/applet.html

VOD-applet.jpg

Pour conclure, juste une remarque sur le choix coté client entre VLC plugin ou Applet Java Cortoda. Lors de mes tests, les deux solutions sont semblables en terme de consommation mémoire et CPU. Par contre, je trouve que le plugin VLC génère un image plus propre et une vidéo plus fluide.

Partager ce billet