Forum Linux.debian/ubuntu Serveur UPNP et les informations sur les films

Posté par (page perso) . Licence CC by-sa
Tags : aucun
2
22
nov.
2013

Salut ! Je dispose d'un NAS où j'ai pu installer Debian Squeeze afin de me créer un petit serveur de fichiers et mail domestique. Je l'utilise également pour stocker mes fichiers multimédia (films, photos et musique). Jusqu'à présent, j'utilisais une platine multimédia Netgear avec un gestionnaire de tags spécifique à la machine. J'aimerais utiliser l'UPNP pour récupérer ma biblio sur mes appareils (Smartphones, Xbox 360, PC, décodeur SFR etc.) histoire d'unifier le tout. J'ai donc installé MediaTomb qui marche assez bien, mais il m'est impossible de créer un script en SpiderMonkey qui pourrait récupérer les informations de chaque film (titre, année, acteurs, pochette etc.) afin d'optimiser le triage. Cela m'aurait également permis d'enregistrer le tout dans la base de données MYSQL de MediaTomb afin de créer une interface WEB maison histoire d'accéder rapidement au contenu de ma collection. Cela me permettrait de connaitre les nouveaux films, photos ou albums ajoutés, afficher certaines informations etc. en plus de proposer un accès aux membres de famille qui pourraient accéder au site depuis Internet.

Enfin bref, j'ai pas mal d'idée pour exploiter mon NAS, mais il faut d'abord que je puisse organiser le tout correctement et simplement. Dans l'idée, ce que fait XBMC est parfait d'autant plus que ça base de données est directement exploitable. L'idéal serait de pouvoir utiliser le serveur UPNP sur mon NAS, mais ce n'est pas possible. L'autre solution serait de mettre en place un media center avec XBMC, mais je ne souhaite pas le laisser constamment allumé comme mon NAS.

Donc j'en reviens à mon point de départ, comment récupérer les informations sur mes films pour les organiser avec MediaTomb ? Merci pour votre aide !

  • # serveur DLNA

    Posté par . Évalué à 3.

    sauf si DLNA et UPNP sont la meme chose, il te faut peut-etre un serveur/service DLNA pour faire ca.

    sinon XBMC est à la fois un client et peut aussi servir de serveur, il doit pouvoir etre installer sur debian squeeze

    • [^] # Re: serveur DLNA

      Posté par (page perso) . Évalué à 1.

      Merci je vais aller regarder du coté d'un serveur DLNA. Je peux tenter d'installer XBMC, mais du coup est-il possible de le contrôler via un terminal ? Il ne va pas pomper trop de ressources ?

      • [^] # Re: serveur DLNA

        Posté par . Évalué à 2.

        le serveur XBMC se controle depuis le client (logiciel, navigateur web, etc)

      • [^] # Re: serveur DLNA

        Posté par . Évalué à 2.

        XBMC sait aussi se brancher sur un nas via des partages nfs, samba, et d'autres. possible qu'il sache causer uPnP pour ca, j'ai la flemme d'allumer le mien pour vérifier les possibilités.
        il peut alors intégrer les contenus dans sa propre bibliothèque, partageable si tu as plusieurs postes avec XBMC.
        ça permets de garder le nas pour ce qu'il est: un nas, et de déployer XBMC (tablette, pc de salon, htpc…) où tu le veux, branché sur un écran qui fait office de serveur uPnP et/ou de lecteur multimédia.
        Note que XBMC ne gère absolument pas le transcodage éventuel pour un format audio/vidéo que saurait lire ton client. c'est au client de se débrouiller, le flux est envoyé tel quel.

        beaucoup de docs sont dispo sur leur wiki, ça couvre beaucoup de cas d'usages. parfois c'est ultra-simple, parfois faut un peu plus d'huile de coude.

        XBMC se pilote via clavier/souris, télécommande infrarouge ou Bluetooth, via uPnP…t'as le choix.

        • [^] # Re: serveur DLNA

          Posté par (page perso) . Évalué à 1.

          C'est surement la meilleure solution ou du moins la plus simple. Le soucis c'est que je devrais laisser tout le temps le serveur multimédia tout le temps allumé en même temps que le NAS, en espérant que ça consomme pas trop de courant (remarque j'ai une carte mère VIA mini-pc qui traine)…

          • [^] # Re: serveur DLNA

            Posté par (page perso) . Évalué à 1.

            Je vais également essayer de regarder du coté de libupnp afin de créer mon propre serveur UPNP qui pourrait exploiter la base de donnée d'XBMC installée sur mon NAS pour organiser les fichiers, se serait vraiment le must je pense !

          • [^] # Re: serveur DLNA

            Posté par . Évalué à 2.

            tout depends de ton installation, en fait.
            ton nas, c'est un pc converti en nas, ou un nas genre synology/qnap?
            dans le cas d'un pc classique, tu peux très bien rester avec une debian de base, les partages en nfs/samba pour l'export vers d'autres ordis et un XBMC pour la visu des médias.
            c'est ce que j'ai ici, c'est simple, ça marche. je peux mater un film sur XBMC tout en matant un autre film sur ma tablette via uPnp. ou l'inverse.
            Sauf qu’après (courte) réflexion, je devrais me payer un synology et y déporter le stockage des fichiers: ça me laisse la liberté d’éteindre le media center sans perdre les partages. c'est tout aussi simple a installer, juste l'histoire d’accéder au nas depuis Debian en plus.

            si tu as un vrai nas, les perfs risquent d’être décevantes pour XBMC qui nécessite quand même a minima une accélération 3D au niveau graphique entre autres choses.

            • [^] # Re: serveur DLNA

              Posté par (page perso) . Évalué à 1.

              J'utilise un NAS DLINK 320 où il est possible d'installer Debian Squeeze via fun_plug. Il est compact et peu bruyant. Après avoir installé Debian Squeeze, je peux donc faire un peu ce que je veux. J'ai été impressionné du résultat que peu donner XBMC et il est clair que je vais dans peu de temps me fabriquer une machine qui le fera tourner exclusivement avec une télécommande. Dans la pratique, je pourrais utiliser la base de donnée d'XBMC pour créer mon interface web. Reste a voir si j'ai vraiment un intérêt à utiliser l'UPNP sur le NAS.

              • [^] # Re: serveur DLNA

                Posté par . Évalué à 2.

                sur un nas, je resterais avec mediatomb ou la solution uPnP fournie.
                ce genre de matériel n'a pas la puissance nécessaire pour faire tourner le bidule, et si c'est juste pour profiter de l'uPnP, c'est overkill.

                XBMC a été prévu pour se connecter un peu partout et lire des medias, pas juste partager via uPnP. c'est une "option bienvenue", on va dire :)

                pour l'interface web, tu as du choix: on en trouve ici, ou ici, y'en a meme une de base a activer dans les options de XBMC. j'aime beaucoup Maraschino.

    • [^] # Re: serveur DLNA

      Posté par (page perso) . Évalué à 3.

      sauf si DLNA et UPNP sont la meme chose

      Oui, DLNA et UPnP sont la même chose. Enfin en gros, UPnP est le protocole et DLNA la marque déposée qui attribue des certificats.

  • # Plex

    Posté par . Évalué à 2. Dernière modification le 22/11/13 à 21:08.

    Si tu n'as rien contre utiliser un logiciel propriétaire, Plex est vraiment un produit bien fini, qui récupère toutes les informations sur les médias, avec de nombreuses applications natives pour de nombreux appareils (Android, iPhone, TV connectées, consoles, etc…) et qui fait aussi serveur DLNA pour les autres appareils.

    http://www.plexapp.com/

    • [^] # Re: Plex

      Posté par (page perso) . Évalué à 1.

      Merci, je pense que je n'ai pas le trop choix. J'aurais préféré utiliser quelque chose de libre, mais bon, l'essentiel c'est que ça fonctionne ^

  • # Je viens de relire le sujet...

    Posté par . Évalué à 3.

    et je ne vois pas ou est le probleme, si tu veux acceder à tes fichiers, il faut evidemment que le NAS reste allumer.
    et c'est ce NAS reconvertit en debian qui fait tourner XBMC en serveur DLNA

    les contenus sont alors disponibles depuis tous les clients DLNA presents sur ton reseau.

  • # Mediatomb

    Posté par (page perso) . Évalué à 2.

    Récupérer les méta-données, mediatomb sait le faire (http://mediatomb.cc/pages/scripting la partie orig.meta énumère les méta-données standard qu'il sauvegarde). Il en profite pour faire des arborescences pratiques autres que juste l'arborescence de fichiers sous-jacente. Et on peut configurer les arborescences qu'on veut, exactement ton besoin donc. Ces méta-données, il les stocke dans sa base de données, non ? Donc faire un site web qui permet de faire des recherches sur ces méta-données ne devrait pas poser de problème (exercice de php standard).

    • [^] # Re: Mediatomb

      Posté par (page perso) . Évalué à 1.

      Oui, jusque là c'est du tout bon ! Le hic c'est que les vidéos, du moins mes films n'ont pas de metadata. A ma connaissance, il est impossible d’incruster des metas dans un fichier AVI. Je pensais que SpiderMonkey fonctionnait un peu comme le JavaScript avec la prise en charge de JQuery, ce qui m'aurait permis de récupérer les informations assez facilement depuis un fichier XML par exemple.

      Bref, j'ai dû pas mal de documenter, et j'ai découvert que la façon la plus simple serait d'exporter la base de données d'XBMC en fichier XML pour chaque film. Par la suite, je dois me débrouiller pour compiler SpiderMonkey avec la prise en charge de file object. J'ai réussi à faire cela, mais étrangement, MediaTomb pointe vers libmozjs et non libjs. Du coup, lorsque je lance la commande js, je peux parfaitement récupérer les éléments d'un fichier NFO de cette façon :

      var file = new File("Police Story.nfo");
      file.open("read", "text");
      var xml_array = file.readAll();
      
      la commande "xml[2]" renvoie : <title>Police Story</title>
      la commande "xml[3]" renvoie : <year>1973</year>
      

      De cette façon, je pourrais supprimer les note afin de récupérer la valeur, et ainsi organiser mon serveur UPNP par année, acteurs, genre etc.

      Sauf que pour le moment, il faudrait certainement que je compile par mes propres soins MediaTomb afin qu'il pointe vers libjs. Je suis quand même en train de compiler libmoz 1.7 en espérant qu'il prenne en charge file object.

      • [^] # Re: Mediatomb

        Posté par . Évalué à 2.

        pourquoi tu veux faire aussi compliquer ?
        si XBMC sait gerer les datas des fichiers, et les afficher, pourquoi ne pas installer "xbmc en mode server DLNA" sur la NAS, activer l'interface web.

        et ton mediaplayer devrait pouvoir acceder à ce serveur DLNA present sur le reseau.

        • [^] # Re: Mediatomb

          Posté par (page perso) . Évalué à 1.

          Si c'est possible, c'est sûr que je vais passer directement par cette solution. Pour le moment, je n'ai trouvé aucune information pour installer simplement XBMC en tant que serveur DLNA…

          • [^] # Re: Mediatomb

            Posté par . Évalué à 2.

            simplement installer xbmc, aller dans les menus de configuration et cocher la case "serveur dlna" ?

            • [^] # Re: Mediatomb

              Posté par (page perso) . Évalué à 1.

              Ah malheureusement ce n'est pas possible. Mon NAS est un DLINK 320 et il n'y a aucune carte graphique, aucun port pour le clavier etc. C'est juste un boitier avec deux disques dur et un port Ethernet. Je travaille uniquement en ligne de commande via SSH… A moins qu"il existe une autre technique, je ne vois pas du tout comment faire.

              • [^] # Re: Mediatomb

                Posté par . Évalué à 2.

                ssh -X user@nas
                puis lancer ton outil graphique, quel qu'il soit

                sinon il faut jouer des fichiers de configuration via la ligne de commande pour activer le service,
                et ca, c'est dans la documentation xbmc que tu vas le trouver.

      • [^] # Re: Mediatomb

        Posté par (page perso) . Évalué à 2.

        Et tu ne peux pas faire d'insertion (enfin d'update plus probablement) dans la base de données de mediatomb quand il est éteint ?

        • [^] # Re: Mediatomb

          Posté par (page perso) . Évalué à 1.

          Oui c'est possible puisque j'utilise une base de données MYSQL pour MediaTomb, se serait une bonne alternative pour le coup.

      • [^] # Re: Mediatomb

        Posté par (page perso) . Évalué à 2. Dernière modification le 23/11/13 à 20:15.

        A ma connaissance, il est impossible d’incruster des metas dans un fichier AVI.

        ffmpeg (ou avconv) sait insérer des métadonnées dans un avi :

        $ avconv -i 101_Blitz_Wolf.avi -metadata title="Blitz Wolf" -acodec copy -vcodec copy blop.avi
        $ avconv -i blop.avi
        ...
        Input #0, avi, from 'blop.avi':
          Metadata:
            title           : Blitz Wolf
            encoder         : Lavf54.20.3
        ...
        

        Après, mediatomb lit-il les métadonnées des avi, je ne sais pas.

        • [^] # Re: Mediatomb

          Posté par (page perso) . Évalué à 1.

          Ah bah si avec ffmpeg c'est possible, je vais pas me prendre la tête plus longtemps ^ !

          Oui MediaTomb en est parfaitement capable étant donné qu'il s'appuie justement sur ffmpeg pour récupérer les informations sur les vidéos et ffmpegthumbnailer pour générer les vignettes. Je vais faire un test et je vous tiens au courant.

        • [^] # Re: Mediatomb

          Posté par (page perso) . Évalué à 1.

          Pour le moment je n'ai pas eu de résultat concluant puisque la version de FFMPEG fournie avec Debian Squeeze semble ne pas être compatible avec MediaTomb. J'ai dû donc tout compiler à la main et bien veillé à ce chaque fonctions soit activées. Alors que je pensais terminé après une nuit de compilation, je suis tombé sur un bug entre GCC 4.5 et la compilation de MediaTomb. Impossible de passer à une version supérieure, puisque je suis bridé par le kernel 2.6 fournie par Dlink avec le NAS. J'ai tout de même tenté de passer à Debian Wheezy, mais ça a cassé ma Squeeze, du coup on repart à zéro. Cette fois, je vais compiler une ancienne version de MediaTomb en espérant que ça fonctionne.

          Sinon, j'ai testé un peu les metada avec avconv et ffmpeg. Cela marche assez bien, je suis plutôt étonné. Le seul souci que j'éprouve, c'est incrustation de façon rapide aux des metas aux fichiers. La seule alternative que j'ai trouvé sans ré-encoder est de copier temporairement le nouveau fichier dans /tmp puis une fois terminé, écraser le fichier d'origine. Je trouve cela assez lourd, mais bon, au moins cela fonctionne.

          Entre deux compilation, j'ai commencé à écrire un code en PHP qui me permet de récupérer les metadatas des films histoire de tester un peu la chose. L'idée serait de manœuvrer ffmpeg avec PHP pour récupérer les informations depuis l'api de TheMovieDB, avec bien évidement un contrôle utilisateur qui permet d'accepter / modifier ou refuser les informations sur le film pour ensuite être incrusté dans le fichier. Cela m'offrirais un peu plus de souplesse que de traiter les films d'un coup, bien que ça pourrait se faire pendant les nuits avec un petit script qui s’exécuterait à des heures précises. Enfin, y a tellement de choses à faire une fois la machine en route…

  • # J'ai réussie !!!

    Posté par (page perso) . Évalué à 1.

    Bonne nouvelle ! J'ai enfin réussi à compiler le tout sous Squeeze (c'est chaud quand même), mais j'ai réussi et ça a approfondie mes connaissances dans l'univers Linux. J'ai dû donc modifier des patch et adapter le code source afin que MediaTomb puisse se compiler correctement avec tous les supports dont j'ai besoin notamment le fameux file(). J'ai la dernière version de FFMPEG qui fonctionne très bien avec MediaTomb contrairement avec les paquets livrés sur le dépot officiel. Du coup, je peux récupérer les metas dans une vidéo ou lire un fichier qui contiendrait les données. En clair, je peux enfin organiser mon UPNP à ma sauce, trier par acteur etc. ! Oui c'est de la balle!

  • # En plein codage

    Posté par (page perso) . Évalué à 1.

    Histoire de vous tenir un peu au courant, je suis en train de créer une interface web en PHP / JQUERY afin de récupérer tous les meta-datas et le poster du film. Les informations sont stockés dans un fichier txt si besoin et incrustés dans le fichier. Je compte également écrire quelques scripts. Bien évidement, je mettrais le tout à disposition sur mon git. Donc je reviendrais vous en parler, enfin si ça intéresse du monde.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.