openSYD

Autour de la distribution Ubuntu et du Logiciel Libre

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…

Les articles sur le même sujet :


Tags , , , + Dans la catégorie Actu libre

13 commentaires

  1. Oulala ça m’a l’air bien compliqué mediatomb ! Si tu ne connais pas, je te recommande chaudement PS3 media server (http://ps3mediaserver.blogspot.com/).
    C’est très simple à utiliser et ça marche vraiment bien (avec incrustation auto des sous titres dans les vidéos, ça, ça rox :) ).
    Va sur le forum récupérer la dernière version (qui doit dater de juillet il me semble, j’ai pas regardé s’il y avait une autre version plus récente encore), elle permet de causer aussi à la freebox HD.

  2. Cela n’a pas marché pour moi le changement de priorité du script de démarrage. j’ai été obligé de rajouter sleep 120 dans le script de démarrage de mediatomb.
    Pour le problème des charset, j’avais mis à jour la doc du site ubuntu-fr il y a quelques temps déjà.

    J’ai un problème pour lequel je n’ai pas trouvé de solution. J’ai une installation PC sous 9.04, une FBX HD, une PS3 et une TV DLNA SAMSUNG. J’ai galéré pendant un mois pour faire tourner mediatomb sur la TV, mais j’ai trouvé ( et complété au passage la doc ubuntu rubrique TV SAMSUNG) Par contre, depuis, mes videos ne sont plus lues sur la fbx hd.

    Du coup, j’ai tout de même trouvé 2 solutions pour la fbx: Homeplayer ou minidlna, un super logiciel que j’ai découvert au cours de mes recherches. Il s’agit d’un serveur DLNA minimaliste mais qui tourne au poil. Son seul défaut est qu’il ne permet pas de modifier les mimes type. Du coup mes mkv ne passaient pas sur la TV

  3. Je plussoie Flink pour ps3mediaserver. Un tres tres bon prog pour povoir tout lire sur sa PS3.Le pricipal avantage que tu y trouveras sera le transcodage en temps réel de tous les formats non supportés par la PS3.

    La derniere version en date est sur le forum officiel 1.11.363 il me semble.

  4. PS3 Media Server est vraiment remarquable ! Après seulement quelques secondes tout est fonctionnel et les possibilités sont impressionnantes : flux RSS Picasa, Youtube, TV sur internet, shoutcasts, podcasts & co

    Je ne connaissais pas, merci bien :)

  5. Ah ouais tout de même, il faut que je teste ça sur la mienne ça a l’air bien sympa :-)

  6. PS3 Media Server est très sympa, mais MediaTomb est plus roots et plus personnalisable au final. Mais il faut mettre les mains dans le camboui :)

  7. Merci pour ces infos, il y a cependant une faute de frappe dans :
    UTF-8
    ^^^^^^^^^
    La bonne syntaxe est :
    UTF-8

  8. Merci pour ces infos, il y a cependant une faute de frappe dans :
    « UTF-8″
    ^^^^^^^^

    La bonne syntaxe est :
    « UTF-8″

  9. Désolé, pour les rebonds, les syntaxes avec des ne passent pas dans les commentaires…

    Merci pour ces infos, il y a cependant une faute de frappe dans :
    mapfilesystem-charset UTF-8 map/filesystem-charset
    ^^^^^^^^^
    La bonne est :
    mapfilesystem-charset UTF-8 /mapfilesystem-charset

    Le tout avec les qui vont bien autour des mapfilesystem-charset

  10. Merci manu pour ta persévérance :)

    Je viens de modifier le billet pour tenir compte de ta remarque ; si ce n’est pas correct, fais-moi signe par mail depuis la page d’accueil du site… à bientôt !

  11. Bonjour,

    J’aimerai afficher en tant que vignettes les covers des films qui sont dans le même repertoire.

    Quelqu’un aurai une idée?

  12. Juste pour répondre à ma propre question , voici comment j’ai fait pour afficher les covers des films que ce trouvent dans un dossier sur le serveur, sur la ps3 à partir de mediatomb.

    tout d’abord, voici les modifications à effectuer dans le config.xml

    1. activer le transcodage:

    2. ajouter les mimetype des formats fichiers à afficher:

    ex:

    3. rajouter un profil nommé covers:

    image/jpeg
    yes
    yes
    128×128

    Ensuite copier le script suivant dans /usr/local/bin/covers.sh

    #!/bin/bash

    DOSSIERCOVERS= »/home/hora/covers »
    MISSING= »missing »

    FILE=$(basename « $1″)
    if [ -f "$DOSSIERCOVERS/$FILE.jpg" ];
    then
    cp « $DOSSIERCOVERS/$FILE.jpg » $2
    else
    cp « $DOSSIERCOVERS/$MISSING.jpg » $2
    fi

    - Dans le script donner le chemin d’accès au répertoire des images ainsi que le nom de la vignette de remplacement.

    Attention, les vignettes doivent s’appeller de cette facon: « nom du film’. »extension ».jpg

    ex:

    pour le film very_bad_trip.avi, l’image doit s’appeller : very_bad_trip.avi.jpg

    rebooter mediatomb

    si certaine vignettes ne s’affichent pas vérifier dans un premier temps que le nom soit correct dans votre répertoire et que le mimetype correspondant au format de la vidéo soit bien dans le config.xml

    voili voilou.

    Hora

  13. Oops point 1, 2, 3

    1. activer le transcodage:

     »  »

    2. ajouter les mimetype des formats fichiers à afficher:

    ex:
     »  »
     »  »

    3. rajouter un profil nommé covers:

     »  »
     » image/jpeg »
     » yes »
     » yes »
     » 128×128″
     »  »
     »  »
     » « 

Laisser un commentaire