Montando um Media Server com o MediaTomb

Esse artigo descreve os passos necessários para instalação do MediaTomb, um poderoso servidor de mídia baseado no protocolo UPnP.

[ Hits: 88.805 ]

Por: Perfil removido em 21/07/2010

Arquivo de configuração

a. Crie um backup do arquivo original:

# mv /home/mediatomb/.mediatomb/config.xml /home/mediatomb/.mediatomb/config.xml_original

b. Altere o arquivo /home/mediatomb/.mediatomb/config.xml conforme suas necessidades. Segue abaixo o meu exemplo:

<?xml version="1.0" encoding="UTF-8"?>
<config version="1" xmlns="" xmlns:xsi="" xsi:schemaLocation="">
    <ui enabled="yes" show-tooltips="yes">
      <accounts enabled="no" session-timeout="30">
        <account user="mediatomb" password="mediatomb"/>
      <sqlite3 enabled="yes">
      <mysql enabled="no">
    <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
      <add header="X-User-Agent: redsonic"/>

    <!-- Uncomment the line below if you have a Telegent TG100 -->
      <ffmpegthumbnailer enabled="yes">
      <mark-played-items enabled="no" suppress-cds-updates="yes">
        <string mode="prepend">*</string>
  <import hidden-files="no">
    <autoscan use-inotify="auto">
      <directory location="/home/user/music" mode="inotify" recursive="yes" hidden-files="no"/>
      <directory location="/home/user/picture" mode="inotify" recursive="yes" hidden-files="no"/>
      <directory location="/home/user/video" mode="inotify" recursive="yes" hidden-files="no"/>
    <scripting script-charset="UTF-8">
      <virtual-layout type="js">
      <extension-mimetype ignore-unknown="no">
        <map from="mpg"  to="video/mpeg"/>
        <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="avi"  to="video/divx"/>
        <map from="mts"  to="video/mpeg"/>
        <map from="ts"   to="video/mpeg"/>
        <map from="m2ts" to="video/mpeg"/>
        <map from="mkv"  to="video/mpeg"/>
        <map from="mkv"  to="video/x-matroska"/>
        <map from="flac" to="audio/x-flac"/>
        <map from="mov"  to="video/x-quicktime"/>
        <map from="vob"  to="video/mpeg"/>
        <map from="m4v"  to="video/mp4"/>
        <map from="iso"  to="application/x-iso9660-image"/>
        <map from="audio/*" to="object.item.audioItem.musicTrack"/>
        <map from="video/*" to="object.item.videoItem"/>
        <map from="image/*" to="object.item.imageItem"/>
        <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="video/quicktime"             as="mov"/>
        <treat mimetype="video/x-quicktime"           as="mov"/>
        <treat mimetype="application/x-iso9660"       as="dvd"/>
        <treat mimetype="application/x-iso9660-image" as="dvd"/>
      <!-- Make sure to setup a transcoding profile for flv -->
      <YouTube enabled="yes" refresh="28800" update-at-start="yes" purge-after="604800" racy-content="exclude" format="mp4" hd="no">
        <favorites user="youtubeuser"/>
        <playlists user="youtubeuser"/>
        <uploads user="youtubeuser"/>
      <standardfeed feed="most_viewed" time-range="today"/>
      <standardfeed feed="recently_featured" time-range="today"/>
      <standardfeed feed="top_rated" time-range="this_week"/>
      <Weborama enabled="no" refresh="28800" update-at-start="no">
        <playlist name="Active" type="playlist" mood="active"/>
        <playlist name="Metal" type="playlist">
      <AppleTrailers enabled="yes" refresh="43200" update-at-start="yes" resolution="640"/>
   <transcoding enabled="yes">
     <transcode mimetype="application/ogg"       using="audio-generic"/>
     <transcode mimetype="audio/x-flac"          using="audio-generic"/>
      <transcode mimetype="video/x-ms-asf"       using="video-generic"/>
   <transcode mimetype="video/x-flv"          using="video-generic"/>
   <transcode mimetype="video/x-matroska"     using="video-generic"/>
   <transcode mimetype="video/mpeg"           using="video-generic"/>
      <transcode mimetype="video/quicktime"      using="video-mov-mpeg"/>
      <transcode mimetype="video/x-quicktime"    using="video-mov-mpeg"/>

     <profile name="audio-generic" enabled="yes" type="external" >
           <agent command="/usr/bin/ffmpeg" arguments="-ac 2 -ar 44100 -y -i %in -f s16be %out"/>
           <buffer size="1048576" chunk-size="4096" fill-size="1024"/>

     <profile name="video-generic" enabled="yes" type="external">
       <avi-fourcc-list mode="ignore">
       <agent command="/usr/local/bin/mediatomb-video-generic" arguments="%in %out"/>
       <buffer size="1048576" chunk-size="26214" fill-size="52428"/>

     <profile name="video-mov-mpeg" enabled="yes" type="external">
       <agent command="/usr/local/bin/mediatomb-mov-mpeg" arguments="%in %out"/>
       <buffer size="262144" chunk-size="6553" fill-size="13108"/>


Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Testando do MediaTomb
   3. Configuração para execução automática
   4. Arquivo de configuração
   5. Scripts de transcodificação
   6. Conclusão e referências
Outros artigos deste autor

Particionamento GPT - Conceitos básicos

FreeRADIUS - Conceitos Básicos - Parte II

Personalizando o tema do usplash nos Ubuntu-like

Usando aMSN com plugin Music com suporte ao Juk e Amarok

Dynamic libraries com libtool

Leitura recomendada

Instalando o Asterisk com suporte a MFC/R2

Stopmotion: Crie animações com objetos inanimados e brinquedos

Linux no pendrive com DSL e QEMU

GNU/Linux de Bolso como Ferramenta Anti-Vírus

Como acessar outras máquinas Linux remotamente

[1] Comentário enviado por sergiomb em 24/07/2010 - 11:13h

A ideia de mostra o mediatomb é muito boa , no fedora se instala assim : yum install mediatomb.
Mas o artigo perde-se em configurações que deviam estar em anexos, para se poder ler melhor o artigo, e fiquei sem perceber para que é que serve , e quem lê .
Estava aqui a ver, na internet, que se pode instalar o mediathumb em discos multimédia como emetec R100, que deve ser bastante interessante (eu tenho um) mas não percebo qual a sua função e para que serve a PS3?

De qualquer modo , agradeço imenso a sua contribuição, e não desanime com as criticas :)

[2] Comentário enviado por removido em 24/07/2010 - 15:24h

Oi sergiomb,

Sim, podemos instalar a versão 0.11 com 'yum' em distros baseadas no Red Hat, ou mesmo com 'apt' em distros baseadas no Debian. Postei esse procedimento no meu blog em 2009:

Agora se você quiser usar as novas características da versão 0.12 do MediaTomb, como YouTube e LastFM, você precisa compilar o source de desenvolvimento conforme mostrado nesse artigo.

Se você não entendeu a função do PS3, talvez você não tenha entendido o conceito de Media Server. Conforme mencionado no artigo, o MediaTomb faz 'streaming' de mídia (fotos, músicas, vídeos) para dispositivos compatíveis com UPnP (DLNA). Esse paper detalha um pouco mais essa tecnologia:

Como você digitou "Mediathumb", talvez você tenha confundido com um Media Browser para Windows. Aí com certeza não precisaríamos do PS3.

Quanto aos arquivos de configuração, sinta-se a vontade em postá-los para facilitar o processo.


[3] Comentário enviado por removido em 31/07/2010 - 07:36h


Você conseguiu acessar os arquivos a partir de uma TV compativel com DLNA?

Tentei fazer o mediatomb "conversar" com minha TV LG, mas não funcionou.

[4] Comentário enviado por removido em 31/07/2010 - 12:06h

Oi Gomes,

Testei somente com o PS3 e um client java, mas deveria funcionar com a sua TV. Vc consegue acessar a GUI pelo browser?

[5] Comentário enviado por removido em 31/07/2010 - 15:34h

Já instalei usando o apt-get e o seu procedimento e em ambos os casos consegui acessar a GUI pelo navegador. Também liberei as portas no Firewall. Só falta a TV enxergar o media server.

Acho que a TV procura uma porta diferente do padrão. Quando uso o Nero Media Home no Rwindows, funciona.

[6] Comentário enviado por removido em 31/07/2010 - 16:18h

Nos testes que eu fiz nunca encontrei esse problema do client não enxergar o server. O que normalmente acontece é problema de incompatibilidade de formatos de mídia entre o que estamos fazendo streaming com o que o client suporta.
Achei no fórum do Ubuntu um problema parecido com o seu, mas com uma Samsung. A solução foi alterar o http-header.
Altere a tag <custom-http-headers> no seu config.xml de:
<add header="X-User-Agent: redsonic"/>

<add header=" Streaming"/>
<add header=" DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000"/>

Não esqueça de tirar o comentário dessa seção removendo o "<!--" do começo e o "-->" do final.

[7] Comentário enviado por andrecostall em 05/01/2011 - 17:01h

E ai loula, tdo blz cara ?
Instalei um server com MediaTomb e esta funcionando perfeitamente parabéns cara..
Cara só tenho uma duvida como faço para acessar algum video atraves do Windows media Player, como ficaria a URL para chamar um video por exemplo "Shrek" ?

[8] Comentário enviado por removido em 10/01/2011 - 11:56h

Oi André,

Nunca tentei usar o WMP como cliente ou servidor UPnP. Pelo explicado nesse link parece que é possível:


[9] Comentário enviado por bcsdias em 25/05/2011 - 08:54h

Belo artigo.
Estou tentando configurar o mediatomb no freenas e estou com uma duvida.
o mediatomb esta instalado e rodando, mas nao sei como configurar qual pasta quero deixar disponivel para streaming
como faço esta configuraçao?

[10] Comentário enviado por removido em 26/05/2011 - 13:50h

Oi bcsdias,

Você pode adicionar a(s) pasta(s) pela interface web do Mediatomb ou direto no arquivo de configuração conforme exemplo abaixo:

<autoscan use-inotify="auto">
<directory location="/home/user/music" mode="inotify" recursive="yes" hidden-files="no"/>
<directory location="/home/user/picture" mode="inotify" recursive="yes" hidden-files="no"/>
<directory location="/home/user/video" mode="inotify" recursive="yes" hidden-files="no"/>

Altere o "location" conforme suas necessidades.

[11] Comentário enviado por alexandreceti em 07/09/2011 - 21:50h

Mais uma dica galera
Para ter mais de 1 trilha de áudio para vídeos de 2 trilhas.
no final do código dos scripts, adicione o parâmetro -newaudio como abaixo.
...-f ${FORMAT} -r ${FPS} - > "${OUTPUT}" 2>/dev/null
....-f ${FORMAT} -r ${FPS} - > "${OUTPUT}" -newaudio 2>/dev/null.

ai o vídeo passa a ter 2 trilhas..

[12] Comentário enviado por jmcastro em 07/05/2013 - 16:33h

Olá Alexsander, parabém pelo artigo.
Tenho uma dúvida operacional. Sou novato em Linux, estou procurando deixar o Win para trás e com ele o meu cliente dlna WMS.
Instalei o Mediatomb no meu PC e meus arquivos de media estão em um HD separado - instalado em um NAS, ligado a minha rede doméstica - como faço para incluir no Database doMediatomb este HD com meus arquivos de filmes e músicas?
Sei que seu post já foi feito há algum tempo, mas se pudesse me ajudar agradeceria.


[13] Comentário enviado por danieldhdds em 17/09/2014 - 22:12h

MediaTomb plenamente configurado e funcionando no Ubuntu 14.04 LTS, via WiFi no modem Sagemcom e na SmartTV LG.

PS: Baixei ele pelo Synaptics, instalei os pacotes adicionais que ele mostrou que faltava no arquivo de log e pronto. Executei, verifiquei o log, instalei como autoexecutável no boot e reiniciei o sistema. PERFEITO!

Posterior ao reboot do sistema e o server já funcionando perfeitamente fui ver o arquivo de log novamente e constava "Error: iconv..." que, com uma pesquisada na internet encontrei o seguinte site: Pelo que pude entender, o iconv é um sistema antigo para dar nomes a caminhos, não aceitando vários formatos e etc, portanto tem sua 'atualização'. Vou fazer a instalação agora (se eu aprender a compilar um .tar.gz), voltarei com o resultado e direi se houve alguma modificação no MediaTomb.

(Ia tentar aprender a compilar, mas deixa pra lá. "Em time que está ganhando não se mexe.")

Contribuir com comentário


Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner





Top 10 do mês