quinta-feira, 13 de junho de 2013

MiniDLNA - Servidor de mídia descomplicado

Introdução

Esse é meu primeiro artigo aqui no VOL, então, decidi abordar um tema que me deu algumas dores de cabeça durante um tempo.

Há muito tempo sou viciado em séries de TV, filmes, etc, mas às vezes, cansa e tal, até por questão de qualidade mesmo.

Mas, enfim, já tem um bom tempo que venho buscando uma maneira de montar um media center. Já busquei na Internet, já vim aqui no VOL, mas nenhuma das soluções que encontrei foi totalmente satisfatória. Entre elas, estavam:
  • XMBC
  • PS3MediaServer
  • MediaTomb
  • uShare

Porém, há alguns meses atrás, um monstro de 29" CRT que tinha aqui em casa finalmente morreu... Então, junto com a nova 'moradora', uma SmartTV Samsung com Wi-Fi e tudo mais, um amigo me apresentou um programinha muito simples, mas com um potencial incrível, de fácil instalação e manutenção, além de leve e estável. E é justamente sobre essa 'benção' que venho compartilhar com vocês.

P.S.: antes de irmos para a parte interessante, deixe-me apresentar o material usado nesse processo:
  • Notebook STI IS1462 com Slackware 14
  • Roteador Intelbras WRN240
  • SmartTV Samsung - SERIES 5 - 5300

Apresento-lhes: MiniDLNA

MiniDLNA é um servidor objetivo, compatível com clientes DLNA/UPnP. O daemon MiniDLNA compartilha arquivos de mídia (músicas, imagens e vídeos) com clientes numa rede.

Esses clientes incluem aplicações, tais como VLC e XMBC, além de dispositivos, como por exemplo, smartphones, TVs e consoles de jogos (PS3 e Xbox 360).

O MiniDLNA é um alternativa leve ao MediaTomb, por exemplo. Ele não possui uma interface WEB para configuração, as poucas necessárias devem ser feitas editando um arquivo de texto. 
 
 

Instalação / Configuração

Instalação

Em primeiro lugar, o MiniDLNA depende diretamente apenas do pacote ffmpeg.

Debians-like e RPMs-likes: os repositórios oficiais já contém os pacotes já compilados. Além do que, também podem ser encontrados no site:
Slackware: os pacotes podem ser obtidos no SlackBuilds:
E para as demais distribuições, a página oficial do projeto é:
Se você baixar os arquivos binários ".deb", ".rpm", basta iniciá-lo normalmente com dois cliques ou pelo terminal, usando o gerenciador de pacotes da sua distribuição.

Se você, assim como eu, prefere compilar o código, o procedimento é o padrão:

$ ./configure
$ make

# make install


Configuração

O MiniDLNA não possui uma manpage, para acessar a ajuda, use:

$ minidlna -h

Mas, tome isso apenas como um complemento, porque a maior parte do que é mostrado, pode ser definido do arquivo "minidlna.conf".

O arquivo de configuração do programa é criado no diretório "/etc", o caminho completo para o arquivo é: "/etc/minidlna.conf"

No arquivo a seguir, mostrarei as configurações básicas para o uso do servidor:

#network_interface=eth0  # Se estiver comentada, ela é auto configurada, porém, por vezes, é necessário definir manualmente.

media_dir=/home/usuario/midia  # Nesta área são definidos os diretórios de
media_dir=A,/home/usuario/musicas  #origens dos arquivos de mídia.
media_dir=P,/home/usuario/imagens
media_dir=V,/home/usuario/videos

friendly_name=  # Esse item é opcional, mas bem útil, é aqui que será definido o nome pelo qual seu servidor será reconhecido.

db_dir=/var/cache/minidlna  # Essa linha não pode estar comentada, ela mostra o caminho para o banco de dados.

log_dir=/var/log  # Essa linha não pode estar comentada.

inotify=yes  # Use 'no', se você tem poucas fontes de dados, será necessário o servidor se um novo arquivo de mídia for inserido.


A linha "media_dir=/home/usuario/midia", mostra que ele vai buscar os arquivos no diretório descrito, porém, sem distinção de tipo, isso é viável em alguns casos (poucos arquivos para serem exibidos).

Porém, se assim como eu, o seu objetivo for manter um mini cinema em casa (hoje tenho uns 160 GB de filmes, 393 GB de séries e 124 GB de músicas), aí a coisa complica um pouco, pois manter tudo isso misturado é impensável.

Para isso, temos basicamente três marcadores, que dizem ao servidor que tipo de arquivo ele vai buscar em determinado diretório:
  • A → para áudio (e.g.: media_dir=A,/home/usuario/musicas)
  • P → para imagens (e.g.: media_dir=P,/home/usuario/imagens)
  • V → para vídeos (e.g.: media_dir=P,/home/usuario/videos) 

Em funcionamento

Após a instalação e as configurações já devidamente efetuadas, a operação propriamente dita, é a parte mais trivial de todo o processo.

Depois de inserir o caminho para os diretórios onde estarão armazenados os arquivos de mídia, precisamos apenas executar o seguinte comando no terminal:

# minidlna -d -R

Ou, para quem preferir, pode-se criar um lançador ou um pequeno script para iniciar o serviço.

O parâmetro "-d" (opcional) faz com que o MiniDLNA rode em modo debug. Nesta opção, ele não ficará em segundo plano, em compensação, será mostrado todo e qualquer evento durante a execução do servidor.

Já o parâmetro "-R" (recomendo) força o MiniDLNA para que faça o rescan completo dos diretórios cada vez que ele for iniciado com esse parâmetro, buscando por novos itens.

As imagens abaixo representam dois clientes distintos para o serviço do MiniDLNA:
Linux: 
MiniDLNA - Servidor de mídia descomplicado
Nos testes, foi o usado o player VLC, mas nada impede de usar outro. Podemos ver aqui que ele listou quatro diretórios dentro do TsUrIu_DLNA_Server, que, por sua vez, é o nome do meu servidor, (Browse Folders, Music, Pictures e Video), sendo que no meu arquivo conf, só estão marcados Music e Video, se eu tentar acessar os outros, estarão obviamente vazios.
Linux: 
MiniDLNA - Servidor de mídia descomplicado
Como a TV é Samsung, ela possui o AllShare que usa o mesmo protocolo DLNA, então, acabou por identificar o servidor como sendo AllShare. Logo em seguida, vemos novamente o nome que identifica o servidor.

Conclusão

Como vocês puderam conferir, o MiniDLNA é um programa poderoso, cumpre plenamente o que promete.

O serviço pode ser acessado de qualquer dispositivo e/ou sistema que possua suporte ao protocolo DLNA, sendo assim, Tablets e Smartphones também estão inclusos.

Além do que, existem aplicativos para Android que possuem a mesma função do MiniDLNA.

Referências

4 comentários:

  1. Eu instalei o Minidlna no Servidor Nas DNS 320L, o nome do HD é volume1, criei dentro dele 3 pasta, video, musica e fotos mas não sei configurar o caminho destas pastas no MINIDLNA. Sabendo que o nome do disco é volume1. como ficaria o caminho das pastas? Pra mim setar no minidlna.

    ResponderExcluir
    Respostas
    1. estou tentando fazer isso no Fedora 29, mas nao estou conseguindo fazer aparecer o disco q possuo os videos.
      Na TV aparecem somente diretorios q nao existem, e os que eu criei e inclui no caruivo minidlna.conf nao aparecem na TV

      Excluir
  2. e esse comando " minidlna -d -R " tb nao funciona aqui

    ResponderExcluir
  3. para os que tentaram o comando minidlna -d -R e nao funcionou

    tentar

    minidlnad -d -R

    ResponderExcluir