====== Utilisation de l'UPnP AV avec la Freebox : Mediatomb ====== La freebox est compatible depuis Mai 2009 avec le standard UPnp AV, c'est-à-dire qu'elle est capable de chercher les serveurs UPnP AV sur le réseau local et d'exploiter les fichiers partagés par les serveurs. La [[http://fr.wikipedia.org/wiki/UPNP|page wikipedia sur l'UPnP]] et surtout le paragraphe sur l'UPnP AV explique mieux que moi les différentes parties impliquée. [[http://mediatomb.cc/|Mediatomb]] est un serveur UPnP AV, il partage sur le réseaux les médias que l'utilisateur a sélectionnés. Le seul problème c'est que seul les fichiers vidéos sont lisibles par la freebox, les fichiers audio n'apparaissent même pas dans l'interface. Cette limitation imposée par free utilise le //mimetype// des fichiers annoncé par le serveur UPnP/AV. En clair la freebox n'accepte que les //mimetype// suivants : * video/x-matroska * video/x-msvideo elle refuse tous les autres. Il suffit de donner le //mimetype// //video/x-msvideo// à n'importe quel fichier pour qu'il soit affiché dans l'interface. Mais il ne sera pas pour autant lu par la freebox... ===== Installation et configuration ===== Mediatomb est empaqueté dans Debian, donc pour l'installation : sudo aptitude install mediatomb La configuration de mediatomb est situé dans le fichier ''/etc/mediatomb/config.xml''. Comme j'ai plusieurs interfaces réseaux, j'ai indiqué laquelle utilisée : [...] eth0 [...] Pour que le démon démarre automatiquement au boot, il faut modifier le fichier ''/etc/default/mediatomb'' : [...] NO_START="no" [...] Après avoir démarré le service, une interface web est disponible à http://IP:49152/. Cette interface permet d'ajouter des médias ou des répertoires en utilisant l'ongler ''Filesystem''. Une fois les médias ajoutés, ils sont disponibles dans l'onglet 'Database'. Par défaut mediatomb range les médias en fonction de leur type (video, audio, image) et créé une arborescence virtuel pour certain media (répertoires //album, artiste, date, ...// pour les fichiers audio). À partir de maintenant les fichiers sont accessibles par la freebox. ===== Organisation des médias ===== ===== Transcoder des mp3 ===== La freebox est capable de lire les fichiers mp3, mais refuse de les lister et refuse un flux uniquement audio mp3. Pour preuve, il est possible de lire un fichier AVI ayant une bande son encodé en mp3. La solution consiste à transcoder les mp3 en fichier vidéo. Sur le principe, on utilise n'importe quoi comme source vidéo, du moment que la source audio est le fichier mp3. VLC est capable de lire 2 flux en même temps (audio + vidéo) et de les transcoder en un seul. #!/bin/bash DIR="/home/path/to/music" FILE="myfile.mp3" COVER="cover.png" vlc \ --sout "#transcode{vcodec=mp2v,vb=400,scale=1,audio-sync}:duplicate{dst=display}" \ --sub-filter "marq{marquee=Artiste: \$a\$_Titre: \$t\$_Album: \$b\$_Piste: \$n,size=12}" \ --fake-duration=5000 --fake-width=300 --fake-height=300 --fake-fps=10 \ --fake-file "${DIR}/${COVER}" \ --input-slave "#fake://" \ "${DIR}/${FILE}" ===== Tester le service UPnP/AV ===== Le logiciel [[http://djmount.sourceforge.net/|djmount]] est capable d'exploiter les serveur UPnP/AV. Il utilise //fuse// pour créer une arborescence représentant le contenu du serveur UPnP. sudo aptitude install libfuse-dev wget http://sourceforge.net/project/downloading.php?group_id=142039&filename=djmount-0.71.tar.gz&a=15058957 tar xvzf djmount-0.71.tar.gz cd djmount ./configure make Pour l'utiliser : mkdir /tmp/upnp cd /path/to/install/djmount sudo ./djmount -f -o allow_other /tmp/upnp/ le //-f// force djmount à rester en foreground, c'est utile pour voir ce qui se passe. Pour démonter l'arborescence : sudo fusermount -u /tmp/upnp/ Dans les répertoires //virtuels// il y a un répertoire nommé //.metadata// qui contient les fichiers xml décrivant chacun des fichiers, c'est très utile pour comprendre ce que communique le serveur UPnP. ===== Liens utiles ===== * [[http://wiki.videolan.org/Documentation:Modules/fake|Documentation sur le module //fake// de VLC]] * [[http://wiki.videolan.org/Documentation:Modules/marq|Documentation sur le module //marq// de VLC]] * [[http://wiki.videolan.org/Documentation:Play_HowTo/Format_String|Documentation sur le format des chaîne de caractère pour //marq// dans VLC]] * [[http://wiki.videolan.org/Documentation:Streaming_HowTo/Advanced_Streaming_Using_the_Command_Line|Documentation partielle pour transcoder avec VLC]] * [[http://www.straightnochaser.org/2007/06/upnp-av-streaming-in-ubuntu-with-a-d-link-dns-323/|Documentation d'installation de djmount]]