Mediatomb, un serveur multimedia.
Nous avons tous de superbes TV a ecran plat avec des tonnes de fonctions
integrées et des ordinateurs a recycler. Du coup ce qui va suivre va
certainement vous interesser ! Qui n’a jamais eu la flemme de se lever
pour changer de dvd ? Qui n’a jamais dit « il n’y a rien ce soir a la
télé » ? Et qui n’a jamais dit a quoi bon payer la redevance télé ?
Maintenant imaginez un peu ce qui suit(tiré de fait réél), vous etes
chez vous, vous venez de raccompagner vos amis, il est tard et il n’y a
rien a la tv mais aucune envie d’aller vous coucher. Vous avez une
collection impressionnante de divx(seulement des copies légale de vos
dvd)sur le pc du 1^er^ etage mais aucune envie d’aller la haut, vous
préféré regarder sur votre canapé devant la belle tv led branché a un
ordinateur relié au reseau par wifi. Et si je vous disais que c’est
possible et tres simplement ? Mediatomb est le logiciel qui permet de
realiser ce reve.
### Pré-requis {#outil_sommaire_0}
La on va faire avec les moyens du bord, c’est a dire votre pc principale
relié au reseau locale et a internet bien entendu et qui va faire office
de serveur multimedia et donc heberger mediatomb, d’un deuxieme pc qui
peut etre un ordi de récuperation trouvé dans une benne ou simplement le
vieu pc qui n’en peut plus de windows ou encore(c’est mon cas) d’une
console de jeu comme la PS3 qui permet de lire des medias sur le reseau
via dlna. Biensur il faudra de perference des distributions linux, de
préférence debian/ubuntu. Donc si on résume, on a besoin de :
- d’un pc « serveur » avec mediatomb et votre collection de divx(votre
pc principale)
- d’un pc « client » (le vieu pc fera l’affaire) ou d’une console PS3
- d’une connexion internet
### Installation {#outil_sommaire_1}
Mediatomb est un serveur multimédia UPnP avec une belle interface web.
Il vous permet de diffuser des fichiers multimédia sur votre réseau
domestique, et de les écouter ou regarder sur différents appareils
compatibles UPnP.
Il permet aussi de transcoder a la volée des films pour les rendre
compatible avec votre tv/ps3/pc client(mais on y reviendra plus loin..).
Pour l’installer , c’est tres simple, sous debian un simple
aptitude install mediatomb vlc ffmpeg
suffira pour installer le serveur et les outils nécessaires pour
transcoder de la video.
### Configuration de la base de données {#outil_sommaire_2}
Mediatomb a besoin d’une bas de données, sqlite3 ou MySQL, beaucoup
préféront le second mais moi dans l’optique d’etre le plus simple et le
plus rapide, je reste sur du sqlite3, surtout que cette base supporte
mes nombreux films. Par defaut c’est de toute façon du sqlite3 qui est
choisi. Pour ceux qui veulent du MySQL, il vous faudra vous tourner
vers[ubuntu-fr 5.3 Usage MySQL](http://doc.ubuntu-fr.org/mediatomb).
### Configuration du serveur {#outil_sommaire_3}
Mediatomb peut etre lancé comme un service, c’est a dire au demarrage du
pc comme le serveur de mail exim, ou un serveur ftp, ou ssh. Ou il peut
etre lancé par l’utilisateur au debut de sa session. Dans mon cas j’ai
préféré la seconde solution et grace a mon bureau kde je peu lancer des
applications au demarrage automatiquement. Tout les réglages de
mediatomb se font dans un seul unique fichier :
/home/mon-utilisateur/.mediatomb/config.xml Activation Interface
Mediatomb Mediatomb possede une interface web plutot sympa et simple,
mais par defaut elle n’est pas activé, pour l’avoir il suffit de changer
la valeur ligne 7
<ui enabled=« no » show-tooltips=« yes »>
par
<ui enabled=« yes » show-tooltips=« yes »>
Gestion PS3 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. Sécuriser le
serveur(directement pompé d’ubuntu-fr 5.4 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 :
<ui enabled=« no » />
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 :
<accounts enabled=« yes » session-timeout=« 30 »>
ligne 6, paramétrer les attributs **user** et **password** … **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.** Type de média Il existe un nombre toujours plus important chaque
jour de medias, et seule la méthode d’encodage diffère. Par exemple,
entre un divx et un mkv ou entre un mp3 et un ogg, c’est le codec
utilisé qui fera le media. Faudra donc le préciser a mediatomb en
éditant le fichier config.xml et en modifiant la section
<extension-mimelayout>. On peut trouver une bonne base dans
[ubuntu-fr.org 5.2Gestion des TV
SAMSUNG](http://doc.ubuntu-fr.org/mediatomb)
<extension-mimelayout 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=« mka » to=« audio/x-matroska »/> </extension-mimelayout> <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 »/>
Cette section sert a attribuer un layout mime selon l’extension comme
`<map from="mp3" to="audio/mpeg"/>`{.spip_code dir="ltr"}
qui attribue les fichiers ayant comme extension .mp3 dans le layout
audio/mpeg mais il est possible de traiter un layout mime comme une
extension connue, c’est la section <mimelayout-contentlayout>, par
exemple
`<treat mimelayout="image/jpeg" as="jpg"/>`{.spip_code
dir="ltr"}.
<treat mimelayout=« audio/mpeg » as=« mp3 »/> <treat mimelayout=« application/ogg » as=« ogg »/> <treat mimelayout=« audio/x-flac » as=« flac »/> <treat mimelayout=« image/jpeg » as=« jpg »/> <treat mimelayout=« audio/x-mpegurl » as=« playlist »/> <treat mimelayout=« audio/x-scpls » as=« playlist »/> <treat mimelayout=« audio/x-wav » as=« pcm »/> <treat mimelayout=« audio/L16 » as=« pcm »/> <treat mimelayout=« video/x-msvideo » as=« avi »/> <treat mimelayout=« video/mp4 » as=« mp4 »/> <treat mimelayout=« audio/mp4 » as=« mp4 »/> <treat mimelayout=« application/x-iso9660 » as=« dvd »/> <treat mimelayout=« application/x-iso9660-image » as=« dvd »/> <treat mimelayout=« video/x-matroska » as=« mkv »/> <treat mimelayout=« audio/x-matroska » as=« mka »/>
Les mime-layouts sont des formats de données, ce qui permet a mediatomb de
trier et pour transcoder.
### Transcodage {#outil_sommaire_4}
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 acceder au pc
« serveur »(celui qui fait tourner mediatomb) et vous permettra de lire
vos media, mais voila la PS3 a la facheuse tendance a ne pas lire
certains formats de vidéo comme par exemplele format .mkv. Mediatomb
permet de transcoder à la volée vos contenus vidéo pour les rendre
compatible avec votre client(ici la PS3), grace au transcodeur vlcmpeg
et a des scripts que nous allons ecrire. 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
transcoder(pour cela nous utilisons le layout mime vu plus haut), on
rajoute si ce n’est deja fait dans la section
<mimelayout-profile-mappings> les lignes suivantes :
<transcode mimelayout=« video/x-flv » using=« vlcmpeg »/> <transcode mimelayout=« application/ogg » using=« vlcmpeg »/> <transcode mimelayout=« application/ogg » using=« oggflac2raw »/> <transcode mimelayout=« audio/x-flac » using=« oggflac2raw »/> <transcode mimelayout=« video/x-matroska » using=« video-common »/> <transcode mimelayout=« application/ogg » using=« video-common »/>
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 » layout=« external »> <avi-fourcc-list mode=« ignore »> DX50 DM4V M4S2 </avi-fourcc-list> video/mpeg yes yes yes yes <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 deja s’y trouver :
<profile name=« oggflac2raw » enabled=« yes » layout=« external »> audio/L16 no yes no <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 » layout=« external »> video/mpeg yes yes yes <agent command=« vlc » arguments=« -I dummy %in sout #transcodevenc=ffmpeg,vcodec=mp2v,vb=4096,fps=25,aenc=ffmpeg,acodec=mpga,ab=192,samplerate=44100,channels=2:standardaccess=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 a creer le script mediatomb-transcode-video. On va creer
le fichier mediatomb-transcode-video dans /usr/bin/ :
nano /usr/bin/mediatomb-transcode-video
et on le remplie :
# !/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
Le script fais appel à ffmpeg, d’ou son installation au début de
l’article. On n’a plus qu’a redemarrer mediatomb, de se préparer de quoi
manger, une petite biere et de se poser sur son canapé pour profiter de
son travail !!! Parefeu Une fois mediatomb installé et configuré, on
pensera a ouvrir les ports dans le pare feu([chez moi
ufw](http://doc.ubuntu-fr.org/ufw)) :
- 49152 en udp et tcp
- 1900 en udp
et aussi dans votre box/routeur(livebox, neufbox, freebox...).
### Premier usage(pompé d’ubuntu-fr) {#outil_sommaire_5}
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)
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.
![](http://passiongnulinux.lescigales.org/data/images/images/logiciels/mediatomb1.png)
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. Pour plus d’explications sur
l’utilisation de l’interface web, je vous renvoie vers [la documentation
officielle … dans l’immédiat.](http://mediatomb.cc/pages/userinterface)
Vous ne verrez correctement la page web que si le serveur est bien
configuré et lancé … [voir la section activer
l’interface](http://doc.ubuntu-fr.org/mediatomb#activation_interface_mediatomb) !
Les sources de l’article :
- <http://www.robertain.com/post/2011/03/17/transcodage-film-hd-mediatomb/>
- <http://www.guillaume-leduc.fr/serveur-mediatomb-configuration.html>
- <http://soowei.com/2008/11/27/streaming-mkv-in-mediatomb-to-ps3/>
- <http://doc.ubuntu-fr.org/mediatomb>
pdf pour une utilisation classique sur une mandriva mais facilement adaptable pour debian : [tuto\_ps3.pdf](http://download.tuxfamily.org/passionlinux/documents/tuto_ps3.pdf) </div> </div> </div>
Commencer la discussion: Venez écrire un commentaire dans le forum