Pour aller un peu plus loin avec MediaTomb

Possesseur d’une PlayStation3 et d’une FreeboxHD, j’accède fréquemment aux fichiers images, audios et vidéos stockés sur mon Ubuntu 9.04. Pour ça, j’utilise le logiciel libre MediaTomb, basé sur le protocole UPnP.

Une grosse colère, une bonne dose de patience et un peu de temps libre m’ont récemment permis de régler quelques soucis récurrents pour enfin pouvoir :

  • Démarrer MediaTomb en même temps que le pc,
  • Lire des fichiers MKV sur la PS3 (après conversion),
  • Me faciliter l’accès aux données.

MediaTomb

Pour commencer, installer MediaTomb puis éditer le fichier de configuration /etc/default/mediatomb et changer la ligne (à adapter à votre interface réseau) : INTERFACE="eth0"

Démarrage automatique

Sur ma distribution 9.04, le script /etc/init.d/mediatomb ne lance pas le logiciel automatiquement. Après quelques recherches, le problème vient du fait que le script de MediaTomb se lance en même temps celui des services réseaux.

J’ai cru comprendre que le processus INIT démarre tout ce qui se trouve dans /etc/rcS.d/ puis lance par défaut le runlevel 2. Or avec la version 9.04 Jaunty, le script /etc/init.d/networking se situe maintenant lui aussi dans /etc/rc2.d avec une priorité de 20.

Il me semblait pourtant que init avait été remplacé par upstart… si vous pouvez m’en dire plus, je suis preneur !

Des solutions existent ici et mais j’ai finalement opté pour modifier la priorité de démarrage du script dans chaque runlevel.

sudo update-rc.d -f mediatomb remove
sudo update-rc.d mediatomb defaults 99

Les numéros les plus petits étant démarrés en premiers, le script de MediaTomb (priorité à 99) démarre après celui des services réseaux dont la priorité est à 20.

Lire des vidéos MKV

Par défaut la PS3 ne supporte pas le format Matroska Video. Il suffit donc de convertir ces fichiers au format TS ou M2TS, le format par défaut du Blu-ray (solution extraite de ce thread du forum Ubuntu-fr)

Pour que MediaTomb supporte les formats HD TS et M2TS, ajouter dans /etc/mediatomb/config.xml les lignes :
<map from="ts" to="video/mp2t"/>
<map from="m2ts" to="video/mpeg"/>

Pour convertir un MKV dans ces formats, nous allons utiliser le script H264ToBox, dont l’évolution peut être suivie sur ce thread.

Récupérer la dernière version du script sur ce site ainsi que TsMuxer sur le site SmartLabs.

Les copier dans un répertoire de votre PATH (classiquement /usr/local/bin) et rendre h264tobox exécutable :
sudo mv h264tobox /usr/local/bin/
sudo mv tsMuxeR /usr/local/bin/
sudo mv tsMuxerGUI /usr/local/bin/
sudo chmod +x /usr/local/bin/h264tobox

Ce script a encore quelques dépendances à satisfaire, listées sur la page des scripts utiles de la documentation Ubuntu-fr et installable en cliquant sur ce lien APT.

La conversion se fait à l’aide de l’une de ces commandes (h264tobox –help pour l’aide) :
h264tobox -i fichier.mkv
h264tobox -i fichier.mkv -o m2ts

Durée de l’opération sur mon vieux pc d’environs 7 minutes pour 4.3Go. N’hésitez pas tester avec ce sample.

Ce n’est pas une solution qui fonctionne toujours mais bon nombre de fichiers MKV sont maintenant lisibles sur la PS3 !

Personnalisation

MediaTomb retranscris sur la PS3 la même arborescence que celle de votre ordinateur. Pour éviter d’avoir à aller au fin fond de plusieurs répertoires, une solution consiste à créer des liens symboliques dans un nouveau répertoire créé à la racine, tout simplement !

Vous pouvez modifier le nom qui s’affiche dans le menu de la PS3 en éditant le fichier /etc/mediatomb/config.xml et en remplaçant la valeur entre les balises name pour obtenir par exemple :

<name>sidney_v</name>

Pour changer l’icône associé à MediaTomb sur la PS3 :
sudo cp monimage.png /usr/share/mediatomb/web/icons/mt-icon120.png

Extra : pour ajouter la gestion des MKV à la Freebox, ajouter la ligne suivante dans le fichier /etc/mediatomb/config.xml
<map from="mkv" to="video/x-matroska"/>

Prise en charge des caractères accentués

Lorsque MediaTomb démarre en tant que service, l’encodage des noms de répertoires/fichiers avec accent se retrouvent tronqués. Pour corriger cela, après les lignes :
</server>
<import hidden-files="no">

insérer :
<filesystem-charset>UTF-8</filesystem-charset>
<metadata-charset>UTF-8</metadata-charset>
<playlist-charset>UTF-8</playlist-charset>

Et pour ceux qui voudraient aller plus loin (je manque de temps), regardez du côté des rubriques transcoding et scripting de la documentation officielle…

Vus : 2971
Publié par openSyd : 102