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: 94.846 ]

Por: Perfil removido em 21/07/2010


Introdução



O MediaTomb é um servidor UPnP de código aberto (GPL) que permite fazer streaming de mídia digital (vídeo, áudio, foto) via rede. Ele é compatível com uma grande variedade de dispositivos compatíveis com o UPnP, como: PS3, XBOX 360, TV, Receiver etc. A lista completa de dispositivos testados pode ser encontrada em:
Seguem abaixo algumas características do MediaTomb:
  • Extração do metadata de arquivos MP3, OGG, FLAC, JPEG etc;
  • Suporta thumbnail EXIF;
  • Definição de layout baseado em scripts customizáveis pelo usuário;
  • Transcodificação de formatos via plugins e scripts.

Material utilizado - segue abaixo o material utilizado para os testes:
  • 01 - Computador com Ubuntu 9.10 - Server Edition
  • 01 - PS3 (Firmware v3.40)
  • 01 - Router WRT54GL (Firmware Tomato v1.27)
  • 01 - TV/Monitor
  • 01 - Receiver (opcional, o áudio pode ser reproduzido na TV)

Linux: Montando um Media Server com o MediaTomb

Instalação

O MediaTomb é muito flexível e customizável, portanto as instruções e configurações abaixo podem variar de acordo com as necessidades de cada usuário e devem servir somente como referência.

a. Atualize do sistema operacional e instale as dependências:

sudo password root
$ su
# aptitude update
# aptitude safe-upgrade
# reboot

# /etc/init.d/apparmor stop
# update-rc.d -f apparmor remove
# aptitude remove --purge apparmor apparmor-utils

# aptitude install build-essential autoconf ffmpeg ffmpegthumbnailer \
libavcodec-extra-52 libavdevice-extra-52 libavfilter-extra-0 \
libavformat-extra-52 libavutil-extra-49 libavcodec-dev libavdevice-dev \
libavfilter-dev libavformat-dev libavutil-dev libffmpegthumbnailer-dev \
libdvdread-dev libdvdnav-dev libfaac-dev libfaad-dev libmp3lame-dev \
libmp4v2-dev libopencore-amrnb-dev libopencore-amrwb-dev \
libxvidcore4-dev libx264-dev libexif-dev libtag1-dev \
libcurl4-gnutls-dev libexpat1-dev \
libmagic-dev libmozjs-dev libmysqlclient-dev libsqlite3-dev \
x264 zlib1g-dev subversion


b. Baixe e compile o MediaTomb:

# svn co https://svn.mediatomb.cc/svnroot/mediatomb/trunk/mediatomb mediatomb
# cd mediatomb
# autoreconf -i
# ./configure --prefix=/usr/local


CONFIGURATION SUMMARY ----

sqlite3: yes
mysql: yes
libjs: yes
libmagic: yes
inotify: yes
libexif: yes
id3lib: disabled
taglib: yes
libmp4v2: yes
ffmpeg: yes
ffmpegthumbnailer: yes
lastfmlib: missing
external transcoding: yes
curl: yes
YouTube: yes
Weborama: yes
Apple Trailers: yes
SopCast: disabled
libextractor: disabled
db-autocreate: yes

# make
# make install

# adduser --add_extra_groups --disabled-login --shell /usr/sbin/nologin mediatomb
# sudo -u mediatomb -s -H


    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

Netcat - O canivete suíco do TCP/IP

Usando joysticks em jogos que não possuem opção para utilizá-lo no Linux

Suporte TCP Wrapper - Serviços stand-alone no Debian 6

Prevenindo atualização de pacotes no APT-GET

Checando vulnerabilidades com o Nikto

Leitura recomendada

Criando e fechando portas no seu Linux

PNL para Hacking

A importância do ensino de Arte Digital nas comunidades da periferia de São Paulo

Instalando OpenBSD no vmware

Instalando um sistema Debian GNU/Linux completo em 20 minutos

  
Comentários
[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:
http://alexloula.blogspot.com/2009/06/upnp-server-com-mediatomb.html

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:
http://www.allegrosoft.com/UPnP_DLNA_White_Paper.pdf

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.

Obrigado!

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

Alexsander,

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"/>

Para:
<add header="transferMode.dlna.org: Streaming"/>
<add header="contentFeatures.dlna.org: 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" ?
Abração

[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:

http://thewelltemperedcomputer.com/SW/WMP/MediaSharing.htm

Grato.

[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"/>
</autoscan>

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.
De:
...-f ${FORMAT} -r ${FPS} - > "${OUTPUT}" 2>/dev/null
Para:
....-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.
Obrigado

Marcelo

[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: https://www.gnu.org/software/libiconv/#downloading. 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