GuimPlayer

GuimPlayer est un freeplayer dédié pour l'instant à la lecture de fichiers multimédia (vidéo, musique, photos). L'objectif est d'avoir facilement accès à ses fichiers sans fioritures.

L'une des particularités de ce freeplayer est qu'il repose sur Apache et PHP. Il s'adresse tout particulièrement aux serveurs domestiques sous GNU/Linux.

Principe de fonctionnement

Apache sert les pages PHP sur le port 8080 à la freebox et VLC fournit le flux audio/vidéo sur le port 8081. L'interface web permet d'abstraire l'utilisateur la gestion de la playlist de VLC. L'utilisateur navigue avec sa télécommande puis Apache envoi des requêtes à VLC pour gérer le flux audio/vidéo.

Freebox <--- http ---> Apache <--- http ---> VLC
   ^                                          |
   |----- flux audio vidéo -------------------|

La freebox ne commande pas directement VLC, c'est Apache qui envoi les requêtes à VLC. La freebox se contente d'interagir avec les pages web.

Installation

Le programme se compose d'un script de lancement pour VLC et d'un répertoire contenant les fichiers PHP. On installera toute l'application dans /var/www/freebox/guimplayer.

Apache

Il faut créer un hôte virtuel répondant le sur port 8080 :

# /etc/apache2/sites-enabled/freeplayer
NameVirtualHost 192.168.0.1:8080
Listen 8080
<VirtualHost 192.168.0.1:8080>
        DocumentRoot /var/www/freebox/guimplayer/www/
        # au cas ou apache rale, vous pouvez indiquer un ServerName
        ServerName freeplayer
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/freebox/guimplayer/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

</VirtualHost>

Ensuite il faut récupérer le svn, créer les répertoires et donner les droits :

sudo mkdir /var/www/freebox
cd /var/www/freebox
sudo svn co svn://www.guim.info/mathieu/public/guimplayer/trunk guimplayer
sudo chgrp www-data guimplayer/run
sudo chmod 775 guimplayer/run
sudo chmod 755 guimplayer/vlc-fbx.sh
sudo touch /var/www/.vlc
sudo chown www-data.www-data /var/www/.vlc

Remarques :

  • le répertoire run contient le fichier pid du démon VLC
  • donner les droits à www-data permet d'allumer et d'éteindre le VLC du serveur depuis la freebox, mais il est possible de de démarrer VLC « à la main » sans donner les droits à www-data
  • le répertoire .vlc ,'est pas nécessaire si on lance VLC « à la main »

Mise à jour

Si l'installation a été faite par svn, il suffit de mettre à jour à partir du dépôt :

cd /var/www/freebox/guimplayer
sudo svn up

Ensuite il faut penser à revoir la configuration car le fichier config.php a peut-être été mis-à-jour.

Configuration

Freebox

Dans l'interface de gestion, il faut indiquer l'adresse IP de l'ordinateur contenant le freeplayer.

GuimPlayer

L'interface d'accueil propose 3 types de médias : vidéo, musique, photos. La navigation diffère légèrement en fonction du type de médias.

Le programme suppose que chaque type de médias se trouve dans un répertoire différents sur le disque, par exemple : les vidéos dans /home/pub/video, la musique dans /home/pub/musique et les photos dans /home/pub/photos.

Il faut donc configurer l'emplacement des fichiers médias dans le fichier guimplayer/www/config.php, il faut respecter la syntaxe PHP :

$VLCSCRIPT='/var/www/freebox/guimplayer/vlc-fbx.sh';

$MEDIAS = array(
        new Media('Video', '/home/pub/video', 'mpg ts mp2 mpeg vob avi mkv mp4 mov aif aiff mjpeg wmv asf ogm divx', 'images/kmplayer.png'),
        new Media('Musique', '/home/pub/musique', 'mp3 ogg wav wma au aac', 'images/multimedia.png', true),
        new Media('Photo', '/home/pub/photo', 'jpg jpeg ljpg png pgm pgmyuv pbm pam tga bmp pnm xpm xcf pcx gif tif tiff lbm', 'images/camera_unmount.png', true)
);

Ce qui importe : * $VLCSCRIPT contient l'emplacement du script permettant de lancer et d'éteindre VLC * $MEDIAS contient l'ensemble des répertoires « multimedias », c'est le 2ème paramètre de new Media() qu'il faut changer, celui qui indique l'emplacement des fichiers

Aide

Il y a 3 modes de fonctionnement : parcours des fichiers, playlist, lecture. Au lancement (accès par les univers de la freebox), on a le choix du type de médias à parcourir, il est également possible de démarrer ou éteindre VLC sur le serveur.

Les boutons colorés de la télécommande permettent de passer d'un mode à l'autre : * bouton rouge : mode parcours de fichiers * bouton jaune : affichage de la playlist * bouton bleu : lecture du fichier

Photos

Le menu principal

Parcours des fichiers musicaux

Ajout d'un répertoire à la playlist

Affichage de la playlist

Lecture d'un fichier

Documentations Freeplayer

Voici quelques liens vers des documents utiles pour développer un freeplayer :

  • Comment développer un mod Freeplayer ? : introduction très (trop) courte sur le principe de fonctionnement du freeplayer
  • Freebox HTML Reference Specification : référence officielle du HTML compris par la freebox. C'est très formel et ça manque d'exemple, surtout pour les balises qui n'existent que dans le monde freebox.
  • HTML Freebox : références supplémentaires sur le HTML de la freebox, avec des petites astuces.
  • Exemples HTML : la seule page à peu près bien faite : explications + exemples, pour une utilisation réelle du HTML de la freebox.
  • Evolutions Freebox : sorte de FAQ sur les fonctionnalités de la freebox. Surtout utile pour les informations distillées par les développeurs de la freebox.
  • MRL : définition de MRL (Media resource locator), pour construire les URL à la sauce VLC.

Pour aller plus loin :

  • le code du freeplayer officiel : il est assez incompréhensible si on ne connaît pas le langage de vlc, mais il m'a été utile pour trouver les options de transcodage qui fonctionnent réellement.
  • le code des autres freeplayer sous GPL pour apprendre les options qui fonctionnent vraiment.