MediaTomb est un serveur UPnP OpenSource sous Licence GNU GPL, permettant de distribuer des ressources audio et vidéo sur votre réseau interne, en étant géré par une interface web.
apt-get install mediatomb
Il s'agit de préciser au daemon l'interface réseau à utiliser:
nano /etc/default/mediatomb
# Defaults for MediaTomb initscript # sourced by /etc/init.d/mediatomb # installed at /etc/default/mediatomb by the maintainer scripts # # This is a POSIX shell fragment # # Set whether the daemon should be started. Set this value to anything # but 'yes' to enable the daemon NO_START="no" # Additional options that are passed to the daemon. OPTIONS="" # The network interface for MediaTomb to bind to and for which the multicast # routing entry should be added; "" if the route shouldn't be added at all. # For example: INTERFACE="eth0" INTERFACE="" # The route command and arguments to be used if INTERFACE is defined. # These variables should normally be left unmodified. ROUTE_ADD="/sbin/route add -net 239.0.0.0 netmask 255.0.0.0" ROUTE_DEL="/sbin/route del -net 239.0.0.0 netmask 255.0.0.0" # The user and group that MediaTomb should be run as. USER="mediatomb" GROUP="mediatomb"
INTERFACE="eth0"
NO_START="no"
permet à Mediatomb de se lancer au démarrage.
nano /etc/mediatomb/config.xml
<?xml version="1.0" encoding="UTF-8"?> <config version="1" xmlns="http://mediatomb.cc/config/1" xmlns:xsi="http://www.$ <!-- Read /usr/share/doc/mediatomb-common/README.gz section 6 for more information on creating and using config.xml configration files. --> <server> <ui enabled="no" show-tooltips="yes"> <accounts enabled="no" session-timeout="30"> <account user="mediatomb" password="mediatomb"/> </accounts> <name>MediaTomb</name> </ui> [......]
Remplacer
<ui enable="no"
par
<ui enable="yes"
Remplacer
<accounts enable="no"
par
<accounts enable="yes"
pour permettre d'activer le systeme d'authentification.
Changer ensuite les login/mot de passe dans
<account user="xxx" password="xxx"/>
.
service mediatomb restart
Depuis un navigateur taper l'adresse :
localhost:49152
ou bien
adresse_ip_du_serveur:49152
Pour indiquer au serveur où se trouvent les fichiers multimédia à partager:
Revenir sur Database et vérifier dans PC Directory que votre dossier a bien été pris en compte.
/var/lib/mediatomb/mediatomb.db
Pour la purger, supprimer le fichier, puis redémarrer mediatomb.
Pour que la PS3 puisse voir le serveur mediatomb, il faut modifier la ligne 23 ou 26, changez “no” par “yes”:
protocolInfo extend="yes"
et la ligne 65 ou 77, enlevez les commentaires afin de n'avoir sur cette ligne que ce code:
map from="avi" to="video/divx"
on peut aussi ajouter la ligne
map from="m2ts" to="video/mpeg"
pour lire les fichiers HD M2TS avec la PS3.
Vérifier la présence du paquet
python-coherence
Activer le greffon “client DLNA/UPnP Coherence, fourni par le paquet
totem-coherence
Activer le greffon du partage DLNA/UPnP, fourni par le paquet
rhythmbox-plugin-coherence
La fonctionnalité se trouve dans la section Local Network de la liste de lecture accessible par le raccourci clavier Ctrl+L
UPnPlay et MX Video Player pour les vidéos.
Le transcodage comme son nom l’indique va permettre de transcoder la video en un format reconnu par le client:
Imaginons que comme moi votre tv est relié a votre PS3 qui servira de client pour accéder au pc “serveur”2) et vous permettra de lire vos media.
mais voila la PS3 a la facheuse tendance de ne pas lire certains formats de vidéo comme par exemple le format .mkv.
Mediatomb permet de transcoder à la volée vos contenus vidéo pour les rendre compatibles avec votre client3), grâce au transcodeur vlcmpeg et a des scripts que nous allons écrire.
D'abord commençons par activer le transcodage: pour cela on remplace “no” par “yes” a la ligne <transcoding enabled=“yes”>
du fichier config.xml
.
Nous indiquons maintenant ce qu'il faut transcoder4), on rajoute si ce n'est deja fait dans la section <mimetype-profile-mappings>
les lignes suivantes:
<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"/> <transcode mimetype="video/x-matroska" using="video-common"/> <transcode mimetype="application/ogg" using="video-common"/> </mimetype-profile-mappings>
Mediatomb comporte des “profils” de transcodage contenant la commande qui permettra de convertir les videos dans un format connu par le “client”. Toujours dans config.xml
, on regarde la section <profils>
et on rajoute:
<profile name="video-common" enabled="yes" type="external"> <avi-fourcc-list mode="ignore"> <fourcc>DX50</fourcc> <fourcc>DM4V</fourcc> <fourcc>M4S2</fourcc> </avi-fourcc-list> <mimetype>video/mpeg</mimetype> <accept-url>yes</accept-url> <first-resource>yes</first-resource> <hide-original-resource>yes</hide-original-resource> <accept-ogg-theora>yes</accept-ogg-theora> <agent command="/usr/bin/mediatomb-transcode-video" arguments="%in %out"/> <buffer size="1048576" chunk-size="26214" fill-size="52428"/> </profile>
en plus de ceux qui doivent déjà s'y trouver:
<profiles> <profile name="oggflac2raw" enabled="yes" 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="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="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>
C'est bon, nous en avons fini avec la configuration de transcodage, il reste seulement à créer le script mediatomb-transcode-video
.
On va créer le fichier mediatomb-transcode-video
dans /usr/bin/:
nano /usr/bin/mediatomb-transcode-video
et on le remplit :
#!/bin/bash FFMPEG_PATH="/usr/bin/ffmpeg" INPUT="$1" OUTPUT="$2" VIDEO_CODEC="mpeg2video" VIDEO_BITRATE="4096k" VIDEO_FRAMERATE="25" AUDIO_CODEC="copy" FORMAT="mpegts" exec "${FFMPEG_PATH}" -i "${INPUT}" -vcodec ${VIDEO_CODEC} -b ${VIDEO_BITRATE} \ -r ${VIDEO_FRAMERATE} -acodec ${AUDIO_CODEC} -f ${FORMAT} - > "${OUTPUT}"
Donner les droits d’exécutions au script
chmod +x /usr/bin/mediatomb-transcode-video
On n'a plus qu'à redémarrer mediatomb, de se préparer de quoi manger, une petite bière/tisane et de se poser sur son canapé pour profiter de son travail !!!
Merci à seb95deMLO qui nous a volontier ouvert son site à la copie de ses tutos.