Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
mediatomb [Le 06/05/2017, 18:17]
serged [Modification des paramètres par défaut]
mediatomb [Le 28/04/2018, 11:18] (Version actuelle)
Ligne 1: Ligne 1:
 +{{tag>​Xenial Trusty partage UPnP ps3 dlna}}
  
 +----
 +
 +====== MediaTomb ======
 +
 +**MediaTomb** est un serveur UPnP OpenSource sous Licence.
 +Il permet ainsi de partager des ressources audio et vidéo sur votre réseau interne, en étant géré par interface web.
 +
 +MediaTomb est implémenté selon les spécifications UPnP MediaServer v1.0 ; il est disponible pour architecture x86, AMD64 pour Ubuntu.
 +
 +
 +===== Pré-requis =====
 +
 +  * Disposer des [[:​sudo|droits d'​administration]] ;
 +  * Disposer d'une connexion à Internet configurée et activée ;
 +  * Avoir une connexion réseau correctement configurée sur le client DLNA (PS3, Neufbox, freebox HD, ...)
 +  ​
 +
 +
 +===== Installation =====
 +
 +Il vous suffit de les activer et d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​mediatomb]]**.
 +
 +Après installation il vous faut [[#​activation_interface_mediatomb|activer l'​interface]] et redémarrer Mediatomb, pour éviter le message d'​erreur : ​
 +**MediaTomb UI is disabled. Check your configuration**.
 +
 +
 +===== Configuration =====
 +
 +==== Modification des paramètres par défaut ====
 +Par défaut, Mediatomb diffuse vos médias sur l'​interface réseau //loop// (lo), c'​est-à-dire que vous ne pouvez diffuser vos fichiers multimédias que sur votre ordinateur ! Pour pouvoir les diffuser sur votre réseau local, il faut modifier le fichier ''/​etc/​default/​mediatomb''​ :
 +  gksudo gedit /​etc/​default/​mediatomb &
 +
 +Changez la ligne
 +  MT_INTERFACE="​lo"​
 +en :
 +  MT_INTERFACE="​eth0"​
 +où ''​eth0''​ est l'​interface par laquelle votre ordinateur est relié au réseau local. ​
 +
 +<note warning>​Depuis Xenial (?) le nommage des interfaces a changé et ce peut être une valeur quelconque.
 +
 +L'​interface de votre réseau local est indiquée à la fin de la ligne retournée par la commande :
 +  route | grep "​link-local"​
 +</​note>​
 +
 +Profitez-en pour vérifier que le fichier de log de Mediatomb est bien ''/​var/​log/​mediatomb.log''​ (et non ''/​var/​log/​mediatomb''​) à la ligne :
 +  MT_LOGFILE="/​var/​log/​mediatomb.log"​
 +
 +
 +==== Activation Interface Mediatomb ====
 +
 + Avec les droits administrateur.
 +
 +  * Dans un premier temps, il faut [[:​tutoriel:​comment_editer_un_fichier|modifier le fichier]] **/​etc/​mediatomb/​config.xml** :​
 +Changer la valeur (ligne 7)
 +<file xml /​etc/​mediatomb/​config.xml><​ui enabled="​no"​ show-tooltips="​yes"></​file>​
 +par 
 +<file xml><​ui enabled="​yes"​ show-tooltips="​yes"></​file> ​
 +  * Puis, re-démarrez le serveur : <​code>​sudo service mediatomb restart</​code>​
 +
 +==== Premier usage ====
 +
 +=== Accès interface web ===
 +
 +<note important>​Vous devez avoir autorisé l'​exécution de code JavaScript dans votre navigateur internet. Et pour ceux qui utilisent l'​extension AdBlock, vérifiez qu'​elle ne filtre pas la page web de mediatomb.</​note>​
 +
 +  * Avec [[unity|Unity]] vous avez accès à l'​affichage du serveur quand il est fonctionnel,​ depuis son icone dans la [[unity_launcher|Barre de lanceurs]] ou depuis votre [[unity#​tableau_de_bord_dash|tableau de bord]].
 +<​note>​Pour des versions plus anciennes ou d'​autres variantes, vous y accéder par le menu //​Applications → Son et Vidéo (ou Multimédia) → Mediatomb//​.</​note>​
 +
 +<note warning>​Apparemment,​ l'​usage avec Konqueror, Safari est bogué !
 +L'​utilisation ​ avec Internet Explorer est dégradée ...
 +Pleinement fonctionnel avec Mozilla Firefox, Opera et Chromium.
 +</​note>​
 +
 +    * Vous pouvez le voir aussi en ouvrant votre navigateur internet favori, et en tapant l'une ou l'​autre des deux URL suivantes :
 +http://​localhost:​49152 (http://​localhost:​49152 avec ubuntu 10.04 et 10.10) \\
 +http://​adresse_ip:​49152 (http://​adresse_ip:​49152 avec ubuntu 10.04 et 10.10)\\
 +\\
 +Si cela ne marche pas, alors essayer le port 49153 en tapant l'une ou l'​autre des deux URL suivantes :\\
 +http://​localhost:​49153 (http://​localhost:​49153 avec ubuntu 13.04) \\
 +http://​adresse_ip:​49153 (http://​adresse_ip:​49153 avec ubuntu 13.04)
 +
 +Si cela ne marche toujours pas, alors essayer le port 50500 en tapant l'une ou l'​autre des deux URL suivantes :\\
 +http://​localhost:​50500 (http://​localhost:​50500 avec ubuntu 15.10) \\
 +http://​adresse_ip:​50500 (http://​adresse_ip:​50500 avec ubuntu 15.10)
 +
 +    * Pour finir, il est possible d'y avoir accès aussi, en ouvrant votre gestionnaire de fichiers, de vous diriger dans votre répertoire personnel, puis vers **.mediatomb**,​ et de lancer **mediatomb.html**.
 +
 +=== Aperçu ===
 +
 +{{ :​mediatomb1.png?​direct&​300 |}}\\
 +
 +Cette interface web vous permettra de choisir quels fichiers vous mettrez en partage. \\
 +Pour mettre en partage des fichiers sur le serveur, il faut aller sur le menu **Filesystem** puis naviguer dans l'​arborescence et cliquer sur le signe **Plus** (+) en haut à droite pour chaque dossier ou fichier que vous souhaitez partager. \\
 +Dans **Database** apparaîtra tous les dossiers (et donc tous les fichiers "​média"​ à l'​intérieur) et fichiers partager via le serveur mediatomb. Ceux ci apparaîtront au fur et à mesure du scan des dossiers, plus ou moins rapidement selon qu'il y a beaucoup de fichiers à l'​intérieur.
 + <​note>​
 +Pour plus d'​explications sur l'​[[http://​mediatomb.cc/​pages/​userinterface|utilisation de l'​interface web]], je vous renvoie vers la documentation officielle ... //dans l'​immédiat//​.
 +</​note>​
 +
 +<note important>​
 +Vous ne verrez correctement la page web que si le serveur est bien configuré et lancé ... voir la section **[[#​activation_interface_mediatomb|activer l'​interface]]** !
 +</​note>​
 +
 +
 +
 +=== Enregistrement base de données ===
 +
 +Par défaut, **mediatomb** fonctionne avec sqlite pour enregistrer les différentes données.
 +
 +La base de donnée générée se trouve par défaut ici : **/​var/​lib/​mediatomb/​mediatomb.db**
 +Pour la purger, supprimer le fichier, puis redemarrer mediatomb.
 +
 +Pour info, il est possible d'​[[#​usage_mysql|utiliser une base de données MySQL]]…
 +
 +=====Problèmes=====
 +
 +====Affichage des caractères accentués====
 +
 +Vous pouvez rencontrer des problèmes d'​affichage des caractères accentués dans l'​interface web, notamment si vous lancez mediatomb en tant que service. Pour résoudre ce problème, il faut [[:​tutoriel:​comment_editer_un_fichier|modifier le fichier]] **/​etc/​mediatomb/​config.xml** et ajouter les lignes suivantes après la ligne <import hidden-files="​no"> ​
 +
 + <​file xml /​etc/​mediatomb/​config.xml>​
 +    <​filesystem-charset>​UTF-8</​filesystem-charset>​
 +    <​metadata-charset>​UTF-8</​metadata-charset>​
 +    <​playlist-charset>​UTF-8</​playlist-charset></​file>​
 +
 +Comme à chaque changement du ficher de config, il faut ensuite redémarrer le serveur.
 +
 +==== Starting upnp media server: mediatomb failed! ====
 +
 +Après un mise à jour, il est possible que le service ne redémarre pas :
 +<​code>​sudo /​etc/​init.d/​mediatomb start
 +Starting upnp media server: mediatomb failed!</​code>​
 +
 +Pour comprendre d’où vient le problème il faut vérifier le fichier log
 +
 +Le journal log se trouve dans **/​var/​log/​mediatomb.log** … affichez-le au moindre problème.
 +
 +<​note>​
 +Vous pouvez cibler précisément toute erreur ou information importante, en tapant ceci : <​code>​grep -i warning /​var/​log/​mediatomb.log</​code>​ ou <​code>​grep -i error /​var/​log/​mediatomb.log</​code>,​ voire pour obtenir les dernières informations inscrites dans ce fichier, à exécuter un : <​code>​tail /​var/​log/​mediatomb.log</​code>​
 +</​note>​
 +
 +==== Erreur accès fichier de configuration ====
 +
 +Si vous rencontrez cette erreur :
 +<​code>​tail /​var/​log/​mediatomb.log
 +2010-08-05 21:​56:​41 ​  ​ERROR:​ could not open file /​etc/​mediatomb/​config.xml for writing : Permission denied
 +2010-08-05 22:​00:​57 ​   INFO: Loading configuration from: /​etc/​mediatomb/​config.xml
 +2010-08-05 22:​00:​58 ​   INFO: UUID generated: b98dbcf5-82d3-43b9-81fc-277c1bc0ebe1</​code>​
 +
 +
 +Vérifiez la présence du fichier et les droits :
 +
 +<​code>​cd /​etc/​mediatomb/</​code>​
 +puis
 +<​code>​ls -l 
 +total 21
 +-rw-r--r-- 1 root root 6874 16 juil. 15:56 config.xml</​code>​
 +
 +Pour ce problème là, changer les droits de la manière suivante :
 +<​code>​ sudo chmod 744 config.xml</​code>​
 +
 +puis
 +
 +<​code>​sudo /​etc/​init.d/​mediatomb start</​code>​
 +
 +==== Disque USB inaccessible ====
 +
 +Pour que Mediatomb puisse accéder au contenu d'un disque USB, il est nécessaire que ce dernier soit recensé dans le fichier ''/​etc/​fstab''​.
 +
 +On crée d'​abord un point de montage, accessible par tous :
 +  sudo mkdir /mnt/USB2T
 +  sudo chmod 777 /mnt/USB2T
 +
 +On détermine ensuite quel est l'UUID et le type de formatage du disque USB connecté : 
 +  sudo blkid
 +Parmi les lignes qui apparaissent :
 +
 +''/​dev/​sdb1:​ UUID="​a9774bae-d7e5-4d83-a7c2-d5d48ab16191"​ TYPE="​ext4"''​
 +
 +Il reste à ajouter la ligne suivante à la fin du fichier /etc/fstab :
 +
 +''​UUID=a9774bae-d7e5-4d83-a7c2-d5d48ab16191 /mnt/USB2T ext4 defaults 0 1''​
 +
 +Pour le premier montage uniquement :
 +  sudo mount /mnt/USB2T
 +
 +On peut à présent utiliser l'​interface de Mediatomb pour ajouter à sa base des dossiers se trouvant sur ce disque dur USB.
 +
 +<note warning>​Ce disque USB ne pourra plus être démonté par un utilisateur de l'​ordinateur ; seul un sudoer pourra le faire (''​sudo umount /​mnt/​USB2T''​),​ à condition que le service mediatomb soit arrêté.
 +
 +De plus, si un utilisateur veut accéder aux fichiers de ce disque, il devra utiliser le chemin /mnt/USB2T ; le mieux étant de créer dans son dossier personnel un lien symbolique ​
 +  cd
 +  ln -s /mnt/USB2T
 +qui lui permettra d'y accéder plus simplement.
 + </​note>​
 +===== Utilisation Spécifique =====
 +
 +==== Gestion PS3 ====
 +
 +Il est possible de "​lier"​ la PS3 avec le serveur Mediatomb :
 +
 +Toujours, avec les droits d'​administrateur,​ [[:​tutoriel:​comment_editer_un_fichier|modifiez le fichier]] **/​etc/​mediatomb/​config.xml** :
 +
 +  * ligne 23, ( 26 pour 11.04 ornic) **changez** la valeur **'​no'​** de l'​attribut extend ​ **par '​yes'​** : <​code><​protocolInfo extend="​yes"/></​code>​
 +  * ligne 65, (77 pour 11.04 ornic) **enlevez les commentaires html** de la ligne, afin de ne plus avoir sur cette ligne que ce code : <​code><​map from="​avi"​ to="​video/​divx"/></​code>​
 +
 +Redémarrez le serveur.
 +
 +<note warning>​Vous devez avoir un firmware PS3, version 1.80 minimum.</​note>​
 +
 +<note warning>​Si vous n'​arrivez pas à lire vos fichiers sur la PS3 (ils apparaissent,​ mais avec la mention "​**Données non compatibles**",​ vérifiez que vous modifiez bien le fichier config.xml qui est lu au démarrage de médiatomb. Il en en a en effet un dans /​etc/​mediatomb,​ et un autre dans ~/​.mediatomb. Vous pouvez choisir le fichier lu par mediatomb avec l'​argument -c (par exemple: //mediatomb -c /​home/​utilisateur/​.mediatomb/​config.xml//​).</​note>​
 +
 +<note warning>​Il est parfois nécessaire de **réimporter** les fichiers .avi dans Mediatomb (via l'​interface web), pas seulement de redémarrer le serveur, pour que les modifications apportées à config.xml soient prises en compte.</​note>​
 +
 +<​note>​Si vous souhaitez utiliser mediatomb avec la PS3 et la Freebox HD, vous devez remplacer la ligne 65:
 +<​code><​map from="​avi"​ to="​video/​divx"/></​code>​ par:
 +<​code><​map from="​avi"​ to="​video/​avi"/></​code>​
 +</​note>​
 +
 +<​note>​Si vous souhaitez utiliser mediatomb avec la PS3 et les fichies HD M2TS ajouter la ligne :
 +<​code><​map from="​m2ts"​ to="​video/​mpeg"/></​code>​ </​note>​
 +
 +==== Gestion des TV SAMSUNG ====
 +
 +Toujours, avec les droits d'​administrateur,​ [[:​tutoriel:​comment_editer_un_fichier|modifiez le fichier]] **/​etc/​mediatomb/​config.xml** :
 +Après la ligne: ​ <​custom-http-headers>,​ saisir:
 +<​code>​ <​custom-http-headers>​
 +     <​!-- commenter les 2 lignes qui suivent pour compatibilité avec la freebox-->​
 +    <add header="​transferMode.dlna.org:​ Streaming"/>​
 +    <add header="​contentFeatures.dlna.org:​ DLNA.ORG_OP=01;​DLNA.ORG_CI=0;​DLNA.ORG_FLAGS=01500000000000000000000000000000"/>​
 +    </​custom-http-headers>​
 +</​code>​
 +Pour visualiser les mkv: saisir la ligne suivante dans la rubrique <​extension-mimetype>​ :
 +<​code><​map from="​mkv"​ to="​video/​x-mkv"/></​code>​
 +Ligne 23, changez la valeur '​no'​ de l'​attribut extend par '​yes'​ (permet entre autre d'​avoir les vignettes affichées lors de la visualisation des photos):
 +<​code><​protocolInfo extend="​yes"/></​code>​
 +
 +Si malgré ces différents réglages Mediatomb ne lit aucune vidéo, il faut essayer avec le config.xml suivant (fonctionne avec la TV Samsung UE32C6000) :
 +<file xml config.xml>​ <?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<config version="​2"​ xmlns="​http://​mediatomb.cc/​config/​2"​ xmlns:​xsi="​http://​www.w3.org/​2001/​XMLSchema-instance"​ xsi:​schemaLocation="​http://​mediatomb.cc/​config/​2 http://​mediatomb.cc/​config/​2.xsd"><​!--
 +     Read /​usr/​share/​doc/​mediatomb-common/​README.gz section 6 for more
 +     ​information on creating and using config.xml configration files.
 +    -->
 +  <​server>​
 +    <ui enabled="​yes"​ show-tooltips="​yes">​
 +      <​accounts enabled="​no"​ session-timeout="​30">​
 +        <account user="​USERNAME HERE" password="​PASSWORD HERE"/>​
 +      </​accounts>​
 +    </ui>
 +    <​name>​MediaTomb</​name>​
 +    <​udn>​uuid:​c428ce54-f29a-4ebe-83d5-730ae14a0b32</​udn>​
 +    <​home>/​var/​lib/​mediatomb</​home>​
 +    <​webroot>/​usr/​share/​mediatomb/​web</​webroot>​
 +    <storage caching="​yes">​
 +      <sqlite3 enabled="​yes">​
 +        <​database-file>​mediatomb.db</​database-file>​
 +      </​sqlite3>​
 +      <mysql enabled="​no">​
 +        <​host>​localhost</​host>​
 +        <​username>​DATABASE USERNAME HERE</​username>​
 +        <​database>​DATABASE NAME HERE</​database>​
 +      </​mysql>​
 +    </​storage>​
 +    <​protocolInfo extend="​yes"/><​!-- For PS3 support change to "​yes"​ -->
 +    <!--
 +       ​Uncomment the lines below to get rid of jerky avi playback on the
 +       ​DSM320 or to enable subtitles support on the DSM units
 +    -->
 +    <​custom-http-headers>​
 +      <add header="​X-User-Agent:​ redsonic"/>​
 +      <add header="​transferMode.dlna.org:​ Streaming"/>​
 +      <add header="​contentFeatures.dlna.org:​ DLNA.ORG_OP=01;​DLNA.ORG_CI=0;​DLNA.ORG_FLAGS=017000 00000000000000000000000000"/>​
 +    </​custom-http-headers>​
 +
 +    <​manufacturerURL>​redsonic.com</​manufacturerURL>​
 +    <​modelNumber>​105</​modelNumber>​
 +    <!-- Uncomment the line below if you have a Telegent TG100 -->
 +    <!--
 +       <​upnp-string-limit>​101</​upnp-string-limit>​
 +    -->
 +    <​extended-runtime-options>​
 +      <​ffmpegthumbnailer enabled="​no">​
 +        <​thumbnail-size>​128</​thumbnail-size>​
 +        <​seek-percentage>​5</​seek-percentage>​
 +        <​filmstrip-overlay>​yes</​filmstrip-overlay>​
 +        <​workaround-bugs>​no</​workaround-bugs>​
 +      </​ffmpegthumbnailer>​
 +      <​mark-played-items enabled="​no"​ suppress-cds-updates="​yes">​
 +        <string mode="​prepend">​*</​string>​
 +      </​mark-played-items>​
 +    </​extended-runtime-options>​
 +  </​server>​
 +  <import hidden-files="​no">​
 +    <​scripting script-charset="​UTF-8">​
 +      <​common-script>/​usr/​share/​mediatomb/​js/​common.js</​common-script>​
 +      <​playlist-script>/​usr/​share/​mediatomb/​js/​playlists.js</​playlist-script>​
 +      <​virtual-layout type="​builtin">​
 +        <​import-script>/​usr/​share/​mediatomb/​js/​import.js</​import-script>​
 +        <​dvd-script>/​usr/​share/​mediatomb/​js/​import-dvd.js</​dvd-script>​
 +      </​virtual-layout>​
 +    </​scripting>​
 +    <​mappings>​
 +      <​extension-mimetype ignore-unknown="​no">​
 +        <map from="​mp3"​ to="​audio/​mpeg"/>​
 +        <map from="​ogg"​ to="​application/​ogg"/>​
 +        <map from="​asf"​ to="​video/​x-ms-asf"/>​
 +        <map from="​asx"​ to="​video/​x-ms-asf"/>​
 +        <map from="​wma"​ to="​audio/​x-ms-wma"/>​
 +        <map from="​wax"​ to="​audio/​x-ms-wax"/>​
 +        <map from="​wmv"​ to="​video/​x-ms-wmv"/>​
 +        <map from="​wvx"​ to="​video/​x-ms-wvx"/>​
 +        <map from="​wm"​ to="​video/​x-ms-wm"/>​
 +        <map from="​wmx"​ to="​video/​x-ms-wmx"/>​
 +        <map from="​m3u"​ to="​audio/​x-mpegurl"/>​
 +        <map from="​pls"​ to="​audio/​x-scpls"/>​
 +        <map from="​flv"​ to="​video/​x-flv"/>​
 +    <​!-- ​   <map from="​mkv"​ to="​video/​x-matroska"/>​ -->
 +        <map from="​mkv"​ to="​video/​mpeg"/>​
 +        <map from="​mka"​ to="​video/​mpeg"/><​!-- Uncomment the line below for PS3 divx support -->
 +    <​!-- ​   <map from="​avi"​ to="​video/​divx"/>​ --> <!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
 +    <​!-- ​   <map from="​avi"​ to="​video/​avi"/>​ -->
 +        <map from="​avi"​ to="​video/​mpeg"/>​
 +      </​extension-mimetype>​
 +      <​mimetype-upnpclass>​
 +        <map from="​audio/​*"​ to="​object.item.audioItem.musicTrack"/>​
 +        <map from="​video/​*"​ to="​object.item.videoItem"/>​
 +        <map from="​image/​*"​ to="​object.item.imageItem"/>​
 +        <map from="​application/​ogg"​ to="​object.item.audioItem.musicTrack"/>​
 +      </​mimetype-upnpclass>​
 +      <​mimetype-contenttype>​
 +        <treat mimetype="​audio/​mpeg"​ as="​mp3"/>​
 +        <treat mimetype="​application/​ogg"​ as="​ogg"/>​
 +        <treat mimetype="​audio/​x-flac"​ as="​flac"/>​
 +        <treat mimetype="​image/​jpeg"​ as="​jpg"/>​
 +        <treat mimetype="​audio/​x-mpegurl"​ as="​playlist"/>​
 +        <treat mimetype="​audio/​x-scpls"​ as="​playlist"/>​
 +        <treat mimetype="​audio/​x-wav"​ as="​pcm"/>​
 +        <treat mimetype="​audio/​L16"​ as="​pcm"/>​
 +        <treat mimetype="​video/​x-msvideo"​ as="​avi"/>​
 +        <treat mimetype="​video/​mp4"​ as="​mp4"/>​
 +        <treat mimetype="​audio/​mp4"​ as="​mp4"/>​
 +        <treat mimetype="​application/​x-iso9660"​ as="​dvd"/>​
 +        <treat mimetype="​application/​x-iso9660-image"​ as="​dvd"/>​
 +        <treat mimetype="​video/​x-matroska"​ as="​mkv"/>​
 +        <treat mimetype="​audio/​x-matroska"​ as="​mka"/>​
 +      </​mimetype-contenttype>​
 +    </​mappings>​
 +    <​online-content><​!-- Make sure to setup a transcoding profile for flv -->
 +      <YouTube enabled="​no"​ refresh="​28800"​ update-at-start="​yes"​ purge-after="​604800"​ racy-content="​exclude"​ format="​flv"​ hd="​no">​
 +        <​favorites user="​FAVORITES USER HERE"/>​
 +        <​standardfeed feed="​most_viewed"​ time-range="​today"/>​
 +        <​playlists user="​FAVORITES USER HERE"/>​
 +        <uploads user="​FAVORITES USER HERE"/>​
 +        <​standardfeed feed="​recently_featured"​ time-range="​today"/>​
 +      </​YouTube>​
 +      <​Weborama enabled="​no"​ refresh="​28800"​ update-at-start="​no">​
 +        <​playlist name="​Active"​ type="​playlist"​ mood="​active"/>​
 +        <​playlist name="​Metal"​ type="​playlist">​
 +          <​filter>​
 +            <​genres>​metal</​genres>​
 +          </​filter>​
 +        </​playlist>​
 +      </​Weborama>​
 +      <​AppleTrailers enabled="​no"​ refresh="​43200"​ update-at-start="​yes"​ resolution="​640"/>​
 +    </​online-content>​
 +  </​import>​
 +  <​transcoding enabled="​no">​
 +    <​mimetype-profile-mappings>​
 +      <​transcode mimetype="​video/​x-flv"​ using="​vlcmpeg"/>​
 +      <​transcode mimetype="​application/​ogg"​ using="​vlcmpeg"/>​
 +      <​transcode mimetype="​application/​ogg"​ using="​oggflac2raw"/>​
 +      <​transcode mimetype="​audio/​x-flac"​ using="​oggflac2raw"/>​
 +    </​mimetype-profile-mappings>​
 +    <​profiles>​
 +      <profile name="​oggflac2raw"​ enabled="​no"​ type="​external">​
 +        <​mimetype>​audio/​L16</​mimetype>​
 +        <​accept-url>​no</​accept-url>​
 +        <​first-resource>​yes</​first-resource>​
 +        <​accept-ogg-theora>​no</​accept-ogg-theora>​
 +        <agent command="​ogg123"​ arguments="​-d raw -o byteorder:​big -f %out %in"/>​
 +        <buffer size="​1048576"​ chunk-size="​131072"​ fill-size="​262144"/>​
 +      </​profile>​
 +      <profile name="​vlcmpeg"​ enabled="​no"​ type="​external">​
 +        <​mimetype>​video/​mpeg</​mimetype>​
 +        <​accept-url>​yes</​accept-url>​
 +        <​first-resource>​yes</​first-resource>​
 +        <​accept-ogg-theora>​yes</​accept-ogg-theora>​
 +        <agent command="​vlc"​ arguments="​-I dummy %in --sout #​transcode{venc=ffmpeg,​vcodec=mp2v,​vb=4096,​fps=25,​aenc=ffmpeg,​acodec=mpga,​ab=192,​samplerate=44100,​channels=2}:​standard{access=file,​mux=ps,​dst=%out} vlc:​quit"/>​
 +        <buffer size="​14400000"​ chunk-size="​512000"​ fill-size="​120000"/>​
 +      </​profile>​
 +    </​profiles>​
 +  </​transcoding>​
 +</​config>​ </​file>​
 +
 +==== Usage MySQL ====
 +
 +Il est possible de fonctionner avec MySQL !
 +
 +Veuillez dans un premier temps [[:​mysql|installez le serveur mysql]], si cela n'est pas déjà fait ... ensuite, il vous faut configurer celui-ci, en tant qu'​administrateur toujours :
 +
 +  mysql> CREATE DATABASE db_mediatomb;​
 +  mysql> GRANT ALL ON db_mediatomb.* TO '​user_mediatomb'​@'​localhost'​ IDENTIFIED BY '​passwd_mediatomb';​
 +
 +<note important>​Changez '​user_mediatomb'​ par un nom utilisateur,​ tel que mediatomb, et '​passwd_mediatomb'​ par un mot de passe de votre choix ... retenez-les !</​note>​
 +
 +Ensuite, il faut [[:​tutoriel/​comment_editer_un_fichier|modifier le fichier]] **/​etc/​mediatomb/​config.xml** :
 +
 +  * ligne 14, paramétrer **sqlite** sur **no** : <​code><​sqlite3 enabled="​no"></​code>​
 +  * ligne 17, paramétrer **mysql** sur **yes** : <​code><​mysql enabled="​yes"></​code>​
 +  * ligne 18, laissez **host** sur **localhost**,​ si mediatomb est installé en local ... : <​code><​host>​localhost</​host></​code>​
 +  * ligne 19, paramétrer le nom **utilisateur MySQL**,// celui que vous avez donné ci-dessus.//​ : <​code><​username>​mediatomb</​username></​code>​
 +  * ligne 20, paramétrer le nom de la base **database** sur **db_mediatomb** : <​code><​database>​db_mediatomb</​database></​code>​
 +  * ligne 21, paramétrer le **mot-de-passe MySQL** correspondant à l'​utilisateur MySQL,// ci-dessus.//​ : <​code><​password>​mediatomb</​password></​code>​
 +
 +
 +Redémarrez le serveur !
 +
 +
 +==== Sécuriser le serveur ====
 +
 +Le serveur a intégré un gestionnaire de fichier au-travers du navigateur internet.
 +
 +Configuré par défaut, il permet à n'​importe qui de naviguer dans votre système de fichier et ainsi de télécharger n'​importe quelle donnée. Dans un environnement non sécurisé, il est nécessaire de désactiver l'​interface graphique :
 +
 +  * ligne 4, paramétrer l'​attribut **enabled** à **no** : <​code><​ui enabled="​no"​ /></​code>​
 +
 +Dans le contexte d'un environnement LAN, vous pouvez laisser l'​interface graphique activée, tout en paramétrant la gestion de compte :
 +
 +  * ligne 4, laissez l'​attribut **enabled** à **yes**.
 +  * ligne 5, paramétrer l'​attribut **enabled** à **yes** : <​code><​accounts enabled="​yes"​ session-timeout="​30"></​code>​
 +  * ligne 6, paramétrer les attributs **user** et **password** ...
 +
 +<note warning>​La protection par gestion de compte user/​password n'est pas assez sécurisé pour un environnement non sécurisé. La documentation officielle précise de ne pas l'​utiliser hors du contexte LAN.</​note>​
 +
 +==== Pare-feu ====
 +
 +Une fois mediatomb installé, les ports suivant doivent être ouvert dans le pare-feu ([[:​ufw]]): ​
 +  * 49152 en udp et tcp
 +  * 1900 en udp
 + 
 +et / ou
 +
 +239.0.0.0/8
 +
 +==== Freebox V5 & V6 ====
 +
 +=== Lire les fichiers AVI (divx) ===
 +
 +Remplacer la ligne :
 +<​code><​map from="​avi"​ to="​video/​divx"/></​code>​ par:
 +<​code><​map from="​avi"​ to="​video/​avi"/></​code>​
 +
 +
 +=== Améliorer la qualité d'​affichage des images ===
 +
 +Pour les utilisateurs de Freebox, si vous avez un problème de mauvaise qualité d'​affichage des images ceci est dû à un bug de la freebox qui affiche la vignette et non l'​image si cette dernière possède des données de prise de vue. Il y a deux méthodes pour y remédier.
 +
 +== Méthode 1 : Supprimer les vignettes avec l'​outil convert ==
 +
 +Pour chaque image de votre collection, lancer la commande suivante :
 +<​code>​
 +convert maphoto.jpg -strip photofreebox.jpg
 +</​code>​
 +  * //​maphoto.jpg//​ correspond au nom de l'​image pour laquelle la Freebox affiche la vignette ;
 +  * //​photofreebox.jpg//​ est le nom du nouveau fichier image qui sera créé à partir du précédent,​ sans la vignette.
 +
 +La commande //convert// fait partie des outils [[apt://​imagemagick|imagemagick]],​ vérifier donc que ce paquet est [[:​tutoriel:​comment_installer_un_paquet|bien installé]].
 +
 +== Méthode 2 : Pré-traitement sur les images ==
 +
 +Modifier le fichier// /​etc/​mediatomb/​config.xml//​ pour dire à mediatomb d'​effectuer un pré-traitement sur les images.
 +Dans la balise <​mimetype-profile-mappings>​ ajouter:
 +<file xml>
 +<​transcode mimetype="​image/​jpeg" ​ using="​resizejpeg"/>​
 +</​file>​
 +
 +Dans la balise <​profiles>​ ajouter un profile
 +<file xml>
 +      <profile name="​resizejpeg"​ enabled="​yes"​ type="​external">​
 +        <​mimetype>​image/​jpeg</​mimetype>​
 +         <​agent command="​convert"​ arguments="​ -geometry 25% %in %out"/>​
 +        <​first-resource>​yes</​first-resource>​
 +       <​hide-original-resource>​yes</​hide-original-resource>​
 +       <​buffer size="​1048576"​ chunk-size="​2072"​ fill-size="​262144"/>​
 +      </​profile>​
 +</​file>​
 +
 +Explication:​ Pour les images on ajoute un traitement qui consiste à lancer la commande //convert// avec les arguments suivants: ​ -geometry 25% %in %out (ou %in est le fichier en entrée et %out le fichier en sortie. Il est tout a fait possible de modifier cette commande et ces paramètres. Par exemple :
 +<file xml>
 +      <profile name="​resizejpeg"​ enabled="​yes"​ type="​external">​
 +        <​mimetype>​image/​jpeg</​mimetype>​
 +        <​first-resource>​yes</​first-resource>​
 +        <​hide-original-resource>​yes</​hide-original-resource>​
 +        <agent command="​convert"​ arguments="​-size 1080x720 %in -auto-orient -resize 112.5%x100% +profile '​*'​ %out"/>​
 +        <buffer size="​50000"​ chunk-size="​100"​ fill-size="​100"/>​
 +      </​profile>​
 +</​file>​
 +
 +<​note>​
 +  * Vérifier que l'​attribut //enabled// de la balise //​transcoding//​ soit à //​yes//: ​ <​transcoding enabled="​yes">​
 +  * Seule les images converties sont affichée sur la Freebox. Vos originaux ne sont pas modifiés : [[http://​mediatomb.cc/​pages/​transcoding]] **(en)** ​
 +</​note>​
 +<note important>​
 +  * Le pré-traitement peut être long et est appliqué à tout le répertoire ce qui allonge le temps d'​affichage.
 +  * Prévoyez suffisamment d'​espace mémoire sur votre périphérique de stockage, car les images sont dupliqués sur ce répertoire.
 +</​note>​
 +
 +==== Gérer les sous-titres (sub, srt) ====
 +
 +Avec Mediatomb, vous avez la possibilité de transcoder vos vidéos en temps réel. On peut utiliser cette fonction pour y incruster les sous-titres au vidéo.
 +
 +=== Méthode officielle ===
 +
 +La [[http://​mediatomb.cc/​dokuwiki/​transcoding:​transcoding|méthode officielle]] vous permet de déclarer dans Mediatomb que les fichiers srt (ou sub) sont des fichiers vidéos, aux quels on applique un transcodage grâce à [[mencoder]] qu'il vous faudra installer.
 +
 +<note important>​
 +Avantages de cette méthode :
 +  * Permet de gérer plusieurs langues de sous-titres et de pouvoir visionner la vidéo sans les sous-titres.
 +  * Fonctionne avec la PS3
 +Inconvénients :
 +  * Ne fonctionne pas avec la FreeboxV5 qui filtre les fichiers *.srt
 +  * Les fichiers *.srt sont affiché dans la liste des fichiers du serveur, ce qui peut faire un peu fouillis.
 +</​note>​
 +
 +Il faut d'​abords déclarer un type mime pour les *.srt.
 +
 +<​code>​
 +<​extension-mimetype ignore-unknown="​no">​
 +  ...
 +  <map from="​srt"​ to="​video/​subtitle"/>​
 +</​extension-mimetype>​
 +
 +</​code>​
 +
 +Ajouter un mapping pour ces fichiers :
 +
 +<​code>​
 +<​mimetype-profile-mappings>​
 +  ...
 +  <​transcode mimetype="​video/​subtitle"​ using="​mencoder-srt"/>​
 +</​mimetype-profile-mappings>​
 +</​code>​
 +
 +Puis ajouter un profil correspondant au mapping :
 +
 +<​code>​
 +<​profiles>​
 +  ...
 +  <profile name="​mencoder-srt"​ enabled="​yes"​ type="​external">​
 +    <​mimetype>​video/​mpeg</​mimetype>​
 +    <​accept-url>​yes</​accept-url>​
 +    <​first-resource>​yes</​first-resource>​
 +    <​accept-ogg-theora>​yes</​accept-ogg-theora>​
 +    <agent command="/​usr/​local/​bin/​mediatomb-mencoder-srt"​ arguments="​%in %out"/>​
 +    <buffer size="​1000000"​ chunk-size="​512000"​ fill-size="​20480"/>​
 +  </​profile>​
 +</​profiles>​
 +</​code>​
 +
 +Activer le transcodage des vidéos :
 +
 +<​code>​
 +<​transcoding enabled="​yes">​
 +</​code>​
 +
 +Créer le script qui nous permettra de transcoder les vidéos : **/​usr/​local/​bin/​mediatomb-mencoder-srt**
 +
 +<code bash mediatomb-mencoder-srt>​
 +#!/bin/bash
 +srt="​$1"​
 +output="​$2"​
 +# filename must be of the form "movie name.XX[X].srt"​ or "movie name.srt"​
 +base_name="​$(echo $srt | sed '​s/​\..\{2,​3\}\.srt$//'​ | sed '​s/​\.srt$//'​)"​
 +
 +extensions="​avi mp4 mpg mov"
 +for ext in $extensions ; do
 +    input=$base_name.$ext;​
 +    if [[ -e $input ]]; then break; fi
 +done
 +
 +# Detect encoding to use
 +charset=`file -i "​$1"​ | sed s/​.*charset=//​g`
 +subopt=
 +if [[ "​$charset"​ = "​utf-8"​ ]]
 +then
 +  subopt=-utf8
 +fi
 +
 +exec mencoder "​$input"​ \
 +-oac lavc -ovc lavc -of mpeg \
 +-lavcopts vcodec=mpeg2video:​keyint=1:​vbitrate=200000:​vrc_maxrate=9000:​vrc_buf_size=1835 \
 +-vf harddup -mpegopts muxrate=12000 \
 +-sub "​$srt"​ $subopt -font "/​usr/​share/​fonts/​truetype/​ttf-dejavu/​DejaVuSans.ttf"​ -subfont-autoscale 2 \
 +-o "​$output"​
 +</​code>​
 +
 +=== Autre méthode ===
 +
 +Une autre méthode consiste à utiliser un script de transcodage de tout les fichiers *.avi en cherchant si un *.srt existe dans le même répertoire (en utilisant une association de transcoding pour les .avi/​.mov/​… similaire à la méthode précédente.
 +
 +<note important>​
 +Avantages de cette méthode :
 +  * Fonctionne avec la Freebox
 +Inconvénients :
 +  * Oblige à tout transcoder même quand il n'y a pas lieu.
 +  * Oblige à visionner les sous-titres même si on ne les veut pas.
 +</​note>​
 +
 +Vous pouvez utiliser un script du genre :
 +
 +<code bash>
 +#!/bin/bash
 +video="​$1"​
 +output="​$2"​
 +
 +# extract the base name from the filename
 +basename="​${video%.*}"​
 +[[ ! -z "​$basename"​ ]] && srtfile=$basename"​.srt"​
 +
 +if [[ -e "​$srtfile"​ ]]
 +then
 +        exec mencoder "​$video"​ \
 +        -oac lavc -ovc lavc -of mpeg \
 +        -lavcopts vcodec=mpeg2video:​keyint=1:​vbitrate=200000:​vrc_maxrate=9000:​vrc_buf_size=1835:​vstrict=-2 \
 +        -vf harddup -mpegopts muxrate=12000\
 +        -sub "​$srtfile"​ -font "/​usr/​share/​fonts/​truetype/​ttf-dejavu/​DejaVuSans.ttf"​ -subfont-autoscale 2 \
 +        -o "​$output"​
 +else
 +        exec mencoder "​$video"​ \
 +        -oac lavc -ovc lavc -of mpeg \
 +        -lavcopts vcodec=mpeg2video:​keyint=1:​vbitrate=200000:​vrc_maxrate=9000:​vrc_buf_size=1835:​vstrict=-2 \
 +        -vf harddup -mpegopts muxrate=12000 \
 +        -o "​$output"​
 +fi
 +</​code>​
 +
 +Script modifié : [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=3960065#​p3960065|Forum]]
 +
 +===== Désinstallation =====
 +
 +Il suffit de [[:​tutoriel:​comment_supprimer_un_paquet|désinstaller]] le programme, soit en utilisant la [[software-center|logithèque Ubuntu]], soit en passant par le [[terminal|terminal]] comme ceci :
 +
 +On s'​assure que mediatomb soit bien fermé
 +<​code>​sudo service mediatomb stop</​code>​
 +Puis on supprime son paquet
 +<​code>​sudo apt-get remove mediatomb</​code>​
 +Profitez en pour faire un petit nettoyage
 +<​code>​sudo apt-get autoremove</​code>​
 +ou utilisez [[deborphan|Deborphan]]
 +
 +
 +===== Liens =====
 +
 +  * Le [[http://​mediatomb.cc|site de MediaTomb]]
 +  * La [[http://​mediatomb.cc/​pages/​documentation_overview|documentation]] officielle, [[http://​mediatomb.cc/​pages/​download#​debian_ubuntu|page de téléchargement]],​ … **(en)**
 +  * [[http://​www.tutoriels-video.fr/​comment-faire-un-serveur-upnp-avec-mediatomb/​|Tutoriel vidéo : comment faire un serveur upnp avec mediatomb]] **(fr)**
 +  * [[http://​wiki.debian-facile.org/​manuel:​mediatomb| Paramétrages complémentaires réseau]]
 +
 +----
 +
 +
 +//​Contributeurs ://
 +  * //​[[:​utilisateurs:​ste]] ;//
 +  * //​[[:​utilisateurs:​LeMouchoir]] ;//
 +  * //​[[:​utilisateurs:​claudiux]].//​
  • mediatomb.txt
  • Dernière modification: Le 28/04/2018, 11:18
  • (modification externe)