Vous êtes sur la page 1sur 5

On présente ici 2 solutions de serveurs VOD ( Video On Demand ) en ligne de commande sous Linux

=> Utile pour RPI

- D'abord la plus efficace mais plus lourde = Flumotion


- Puis plus léger mais qui fait des saccades à 2s de lecture aussi bien en mp4 ou divx, même en changeant
la taille du cache, malgré le non transcodage: VLC

Serveur VOD Flumotion


en ligne de commande

 Installer Flumotion et les fichiers sources vidéos


apt-get update
apt-get install flumotion ( 20 mn OK OK pour conf SSL )

sudo mkdir mesVideos


cd mesVideos
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video1.mp4
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video1SD.avi
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video2.mp4
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video3.mp4

 Installer utilitaires pour mot de passe

Les mots de passe de flumotion sont cryptés. On les obtient par un utilitaire du serveur web apache: htpasswd
sudo apt-get install apache2-utils

 Créer un mot de passe

Par défaut Flumotion utilise un utilisateur user avec mot de passe test.
Il doit être crypté par rapport à notre machine:

La syntaxe est htpasswd -d -c passwords user


taper le mot de passe en clair
retaper pour confirmer

=> Cela met le mot de passe dans fichier passwords pour l'usager d'identifiant user

On récupère le mot de passe crypté dans le fichier cat passwords

http://www.flumotion.net/doc/flumotion/manual/en/0.6.0/html/section-deployment-xml.html#section-configuration-manager-manager-bouncer

 Configuration de Flumotion 10

Flumotion utilise 3 éléments


- le manager fait le lien entre les machines
- les workers font le travail ( on peut avaoir un worker pour capture, un pour streaming … )
- le bouncer du manager fait l’authentification entre éléments manager et workers

* Définition du manager et du bouncer: sudo nano /etc/flumotion/managers/default/planet.xml


=> Sur quel port le worker va-t-il contacter ce manager: 7531
=> Comment un worker va-t-il s'authentifier pour se connecter au manager: Bouncer user,test
( test est crypté selon les indications du début avec htpasswd
=> Quel est le flux ? type http-server-ondemand = VOD
point de montage = élément à rajouter à l'@IP du serveur pour conenxion client

1
port = port du flux vidéo pour le client
path = répertoire où sont les vidéos
<planet name="admin">

<manager name="planet-room1">
<!-- no host means all interfaces <host></host -->
<port>7531</port>

<component name="manager-bouncer" type="htpasswdcrypt-bouncer">


<property name="data">user:IFPVuSRq6wX5k</property>
</component>
</manager>

<atmosphere>
<component name="http-server-ondemand"
type="http-server"
label="http-server-ondemand"
worker="localhost"
project="flumotion"
version="0.5.2.1">
<property name="mount-point">/</property>
<property name="port">8800</property>
<property name="path">/home/pi/mesVideos/</property>
<plugs>
</plugs>
</component>
</atmosphere>
</planet>
Exemple: on demand http://www.flumotion.net/doc/flumotion/manual/en/0.5.4.2/html/section-usage-ondemand.html

* Définition du worker: Accès à /etc/flumotion/workers/default.xml


sudo -i car les répertoires sont protégés
cd /etc/flumotion/workers
nano default.xml
On voit l'authentification user, test ( en clair ici ! )
et le port 7531 qui sont ce que l'on a défini dans notre manager
=> Tout est bon, on ne change rien
exit

<?xml version="1.0"?>
<worker>
<!--
You can override the name of the worker, which will typically be
hostname:(xmlfilename)
<worker name="default">
-->

<manager>
<!--
This specifies what manager to log in to.
Compare with command-line options.
-->
<host>127.0.0.1</host>
<port>7531</port>

</manager>

<authentication type="plaintext">
<!--
This specifies what authentication to use to log in.
Compare with command-line options.
-->
<username>user</username>
<password>test</password>
</authentication>

<feederports>8650-8669</feederports>
<debug>*:4</debug>

</worker>

2
 Démarrer Flumotion en ligne de commande

On doit démarrer le manager défini dans /etc/flumotion/managers/default/planet.xml


=> Bouncer user, test pour communiquer entre worker et ce manager
=> VOD avec point de montage /, sur port 8800 avec vidéos du répertoire /home/pi/mesVideos
puis ensuite le worker
sudo flumotion-manager -d 3 /etc/flumotion/managers/default/planet.xml &
puis
sudo flumotion-worker -d 3 -u user -p test &

 Vérifier le fonctionnement du serveur

On vérifie le port: sudo netstat -lntup


=> On voit 7531 = port des contrôles pour notre définition des manager-worker
=> On voit 8800 = port de communication des flux vidéos

On teste avec un client http sur une autre PC:


- Regarder les noms des vidéos disponibles dans le répertoire partagé défini dans le manager ( ici
http://@IP:8800/Video2.mp4
Faire recharger les vidéos car au début on peut avoir celle du cache du navigateur !!

 Modifier le boot pour inclure le démarrage de flumotion

On fait un script intégrant les 2 commandes: sudo nano mon_flumotion.sh


#!/bin/bash
sudo flumotion-manager -d 3 /etc/flumotion/managers/default/planet.xml &
sudo flumotion-worker -d 3 -u user -p test &
exit 0

On lui donne les droits d'exécution: sudo chmod +x mon_script.sh

On l'ajoute au fichier sudo nano /etc/rc.local avant la ligne exit 0:


/home/pi/mon_flumotion.sh

Remarque: Flumotion-status

sudo flumotion status => manager 5877 et worker5904

Remarque: Flumotion-admin

Sur Raspberry Pi, si on a un affichage HDMI, on peut aussi faire:


Utilitaire flumotion-admin qui a besoin d’interface graphique
=> startx
puis lxterminal
puis flumotion-admin
puis conf graphique
connect to a running, user test ...VoD… puis laisser démarrer ( sourire sur 2 smileys, on
voit en bas à doite de l’acran que l’on est à 100% du CPU )
Quitter la fenêtre d’admin flumotion
( si on s’est reconnecté à current … , mettre SANS couper worker et manager => NO
Quitter LXterminal ( fermer fenêtre ), puis startx par bouton arret (log out )

Mais quand on reboote, la config est coupée

Remarque: Tutoriel en espagnol


tuto en sp http://crysol.org/node/483
vieux tuto: http://lescassagnols.free.fr/joomla/index.php?option=com_content&view=article&id=51%3Atutoriel-
video&catid=34%3Atutoriel&Itemid=53
Infos: https://wiki.archlinux.org/index.php/Flumotion

pour voir les processus: ps -e => flumotion manager et worker

3
sudo kill n° pour l'arrêter ( ou flumotion stop ?? )

4
Serveur VOD VLC
en ligne de commande
Bof car après 2 secondes, le flux coupe et reprend => Flumotion plutôt

prépa installer VLC: sudo apt-get install VLC

sudo mkdir mesVideos


cd mesVideos
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video1.mp4
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video1SD.avi
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video2.mp4
sudo wget http://jm.telecoms.free.fr/videos_tp_diffusion/Video3.mp4

cd /home/pi/
sudo nano VOD.conf

Dans VOD.conf
new Video1 vod enabled
new Video2 vod enabled
new Video3 vod enabled
new Video4 vod enabled

setup Video1 input /home/pi/mesVideos/Video1.mp4


setup Video2 input /home/pi/mesVideos/Video1SD.avi
setup Video3 input /home/pi/mesVideos/Video2.mp4
setup Video4 input /home/pi/mesVideos/Video3.mp4

sudo chmod 777 VOD.conf

script de Taper la commande pour lancer le serveur


lancement sudo vlc-wrapper -I dummy --vlm-conf /home/pi/VOD.conf --rtsp-host 0.0.0.0 --rtsp-port 554

vérif port 554 en écoute avec netstat -lntup

vérif avec un client: rtsp://@IP_serveur:554/Video1

ajout du faire script:


script au sudo nano vod_vlc.sh
démarrage à faire !!!!

sudo chmod +x vod_vlc.sh sudo chmod +x vod_vlc.sh


sudo update-rc.d vod_vlc.sh defaults

à tester !!!!

client rtsp://@IP:554/Video1