Servidor dlna

Iniciado por Nelson Quintanilha, 21 de Julho de 2015, 01:24

tópico anterior - próximo tópico

Nelson Quintanilha

Olá colegas,
Estou montando um servidor DLNA para poder assistir a filmes em minha TV, instalei o minidlna e estou encontrando uma dificuldade.
Meu HD é formatado em quatro partes, sistema, home, swap e uma parte formatado em fat 32 com o nome de Backup, alem de possuir um HD externo Samsung.
Tenho filmes gravados em meu HD externo e também no HD interno na parte formatada em fat 32 e  somente consigo transmitir os filmes se eles estiverem na home.
O minidlna.conf está configurado assim:
media_dir=/home/nelson/
Dessa forma consigo ver os filmes que copio para home, tentei outras configurações para velos pelo HD externo, media_dir=/media/nelson/SAMSUNG mas não obtive sucesso e outra para ver  os filmes em Backup, media_dir=/home/nelson/Backup, também sem sucesso.

Obs: Para melhor direcionar o servidor sempre comento as linhas que não estão em uso, ex:

media_dir=/media/nelson/SAMSUNG
#media_dir=/home/nelson/Backup
#media_dir=/home/nelson

Alguém saberia onde estou errando?

Tota

Olá,

Você pode tentar declarar o caminho pela unidade de disco para teste:

Citarmedia_dir=/media/nelson/SAMSUNG
#media_dir=/home/nelson/Backup
#media_dir=/home/nelson

1. media_dir=/media/nelson/SAMSUNG
Se SAMSUNG é seu hd externo, este endereço não me parece válido, pois o sistema irá procurar na pasta /media por um dispositivo chamado nelson

Assim, experimente usar /media/sdxX por exemplo. onde x seria a partição do disco e X o popnto de montagem.
Geralmente hd externo é montado em sdb1 (você pode ver isto no gparted ou com fdisk -l em terminal)

2. media_dir=/home/nelson/Backup
O mesmo aqui. /home/nelson não possui uma partição Backup. Pode conter um link que aponta para /media/Backup

3. media_dir=/home/nelson
Este funciona, pois dentro de /home existe uma pasta de usuário com nome /nelson e que dentro dela devem estar suas midias.

Outra coisa que pode influir são permissões. Veja que Backup e Samsung tenham permissão irrestrita (777) para que o tocador de midia tenha permissões de acessá-los sem restriçâo.




druidaobelix

#2
Pode ainda experimentar usar o uuid da unidade em que estão os arquivos.
Na verdade realmente não sei se o dlna consegue identificar a partir do uuid, mas é o caso de experimentar.

Por padrão do sistema quando se monta uma partição qualquer, que não o raiz e home, o que se tem é:

/media/user/uuid

Por exemplo:

/media/user/5846AD9246AD7184

O uuid é único e identifica de forma precisa a unidade.

Para saber qual é o uuid de cada unidade pode usar:

sudo blkid


www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

Nelson Quintanilha

Olá Tota,
Apliquei o fdisk -l e constatei que o caminho do HD externo de fato era outro e mudei então o caminho para:
media_dir=/media/sdb1
Não obtive sucesso, então dei permissão
sudo chmod 777 /dev/sdb1
Também não obtive sucesso.


Olá Druidaobelix

Com o comando sudo blkid obtive:
/dev/sdb1: LABEL="SAMSUNG" UUID="837E-1C07" TYPE="vfat" PARTUUID="8076db24-01"
Alterei então a linha no minidlna.conf novamente para:
media_dir=/media/user/837E-1C07
Também não obtive sucesso.

druidaobelix

Mas então, /Nelson Quintanilha/,

Na linha:

media_dir=/media/user/837E-1C07

Não é para colocar "user", pois o "user" você substitui pelo **nome real** de usuário do seu sistema.

Por exemplo, se o nome de usuário for nelson, então vai ficar:

media_dir=/media/nelson/837E-1C07

Por via das dúvidas experimente fazer também com uma / (barra) no final do caminho, isto é, teste com uma forma e outra.
Normalmente não deveria ser necessário, mas vai saber como o programa foi escrito e infelizmente não tenho aqui instalado para testar.

media_dir=/media/nelson/837E-1C07/

Note que esse caminho absoluto é um caminho real, existente, vocẽ tem que poder conseguir entrar dentro dele indo pelo terminal e usando o comando cd (change directory), isto é, ele existe mesmo, de verdade, não é uma ficção.

Outro detalhe muito importante: O DLNA só vai conseguir buscar um arquivo dentro desse caminho se esse caminho estiver **montado**, sem o que não irá nunca conseguir ler o que estiver lá dentro.

Assim sendo, monte a unidade que deverá ser lida. Inicialmente monte de forma manual mesmo ou até clicando sobre o ícone correspondente ao disco, mas o importante é que esteja montada para que seja acessível ao Dlna.


www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

Nelson Quintanilha

Olá Druidaobelix

Me certifiquei que o HD externo estava montado.
Tentei primeiro entrar no HD pelo terminal
cd /media/nelson/837E-1C07
cd /media/nelson/837E-1C07/
não obtive sucesso
Já com o comando cd /media/nelson/SAMSUNG obtive sucesso e acabei dando um tur pelas pastas do HD externo sem problema algum, acreditei ter encontrado a solução.
Alterei então a linha no minidlna.conf novamente para:
media_dir= /media/nelson/SAMSUNG
Ledo engano, nada aconteceu, continuei sem acesso.
Também tentei:
media_dir= /media/nelson/837E-1C07
media_dir= /media/nelson/837E-1C07/
Nada aconteceu, ainda continuei sem acesso.
Continuo somente acessando pela home.

Tota

Olá

Estive lendo aqui https://wiki.archlinux.org/index.php/ReadyMedia#Running_minidlna_as_your_own_user

E acho que usar o pacote em modo usuário vai dar nisso. (só acesso /home)


druidaobelix

#7
Se não tiver jeito mesmo de usar o caminho absoluto, então experimente criar um link simbólico, inicialmente para os arquivos individuais propriamente dito.

Se é como você disse no post inicial que configurado no caminho media_dir=/home/nelson/ consegue ver os filmes que copia para dentro desse diretório, então dentro desse diretório crie um link simbólico apontando para o arquivo físico que estará em outro lugar, ou seja, é o link simbólico que estará dizendo qual é o caminho do arquivo físico, é como se o arquivo físico estivesse mesmo lá dentro, só que não está. Talvez funcione, deveria funcionar.
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

#8
O link simbólico pode ser feito em arquivos e diretórios e o arquivo alvo não precisa estar na mesma partição, entao faça inicialmente para um arquivo de vídeo propriamente dito, depois, se funcionar, então experimente fazer para o próprio diretório.

Para criar o link simbólico Inicialmente você precisa saber com toda certeza onde é que estão os seus arquivos de vídeo, isto é, onde fisicamente eles estão.

Pelo que entendi o sistema tem uma partição distinta que está formatado em fat32 e além disso há o disco externo.

Comece pelo mais simples, que é a partição fat32 dentro do próprio disco, ela precisa estar montada, então entre dentro dela por linha de comando usando o cd (change directory) e estando dentro dela use o comando pwd para saber com certeza onde é que você está dentro da árvore de arquivos.

Vou usar um exemplo, note que é apenas um exemplo, não vai usar os mesmo dados que menciono aqui pois aí que não vai funcionar, você tem de usar os dados reais do seu sistema, o que menciono adiante é apenas para melhor ilustrar.

Aqui, apenas como exemplo, neste computador tenho dois discos rígidos, que são identificados como sda e sdb e dentro deles existem várias partições. O sistema própriamente dito (raiz e home) estão instalados em sdb6. Quando monto uma outra partição, seja do mesmo disco (sdb), seja do outro disco rígido existente (sda), elas são montadas sempre dentro de /media/user/uuid, então é para lá que devo ir (lembrando que elas precisam já estar montadas). O tal do user, como já explicado, é o nome real de usuário.

cd /media/user

Agora faço um ls (letra ele mais letra esse) para ver o uuid da partição que foi montada.

Por exemplo, digamos que constato (estou realmente vendo) seja 5846AD9246AD7184

Então, como já estou dentro de /media/user, apenas vou fazer:

cd 5846AD9246AD7184 

(pode digitar apenas os caracteres iniciais 584 e usar a tecla TAB para completar, o sistema preenche sozinho o restante, o que facilita e evita erros de digitação).

Nesse momento meu prompt aparece do seguinte modo:

user@hal9000:/media/user/5846AD9246AD7184$

Então estou realmente dentro da outra partição.

Vamos confirmar onde estou fazendo:

pwd

Aparece uma saída assim:

/media/user/5846AD9246AD7184

Faça um comando ls para ver se realmente seus arquivos estão lá, se confirmados, então é esse mesmo o caminho absoluto de onde estão os arquivos, então é isso que preciso usar para o link simbólico que será criado.

Para criar um link simbólico usa ln mais o argumento -s

ln é letra ele mais letra ene

A sintaxe é sempre

ln -s caminho/arquivo-original /caminho/nome_do_link

ou seja, caminho-arquivo-original é onde está mesmo o arquivo, de verdade, o arquivo que quero representar e vou representá-lo através do nome_do_link colocado em algum ponto. É o alvo para o qual o link aponta.

Se você já estiver dentro do diretório onde quer criar o link simbólico então não é necessário especificar /caminho/nome_do_link, bastando mencionar o nome_do_link.

Então volto para a pasta onde sei que se colocar lá os arquivos o dlna funciona, pois é lá que irei criar o link simbólico.

cd /home/nelson

Vamos no nosso exemplo

Como exercício de raciocínio vamos dizer que tenho um arquivo de vídeo com o nome:

Iron_Man_2-DivXPlusHD-trailler.mkv

e que esse arquivo, como dito, está fisicamente dentro de /media/user/5846AD9246AD7184

Estando eu dentro do diretório /home/nelson, vou criar o link simbólico para o específico arquivo mencionado:

ln -s /media/user/5846AD9246AD7184/Iron_Man_2-DivXPlusHD-trailler.mkv Iron_Man_2-DivXPlusHD-trailler.mkv


No exemplo acima optei por usar o nome_do_link com o mesmo nome do arquivo original, porém claro que se eu quisesse poderia usar um outro nome_do_link mais simples, por exemplo:

ln -s /media/user/5846AD9246AD7184/Iron_Man_2-DivXPlusHD-trailler.mkv filme01-Iron_Man

Primeiro faça dessa forma, por arquivo, para ver se funciona, depois pode tentar referenciar o próprio diretório alvo, talvez também funcione.



www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

Nelson Quintanilha

Olá druidaobelix

Essa semana foi meio dura, fiquei enrolado, mais agora tive um tempinho.

Dei permissão a partição:
nelson@nelson-R590-K-BE56P1:/media/nelson$ sudo chmod 777 8636946D3694604B[sudo] password for nelson:

Criei o Link:
Sudo ln -s /media/nelson/8636946D3694604B$/Vídeos2 Arrow.S03E01.HDTV.x264-LOL.mp4

Tenho acesso a partição conforme demonstrado abaixo.
nelson@nelson-R590-K-BE56P1:~$ cd /media/nelson/8636946D3694604B/Vídeos2
nelson@nelson-R590-K-BE56P1:/media/nelson/8636946D3694604B/Vídeos2$ ls
Arrow.S03E01.HDTV.x264-LOL.mp4  Como germinar sementes de Maçã.mp4
Arrow.S03E01.HDTV.x264-LOL.srt

Ele não aparece de forma nenhuma na TV.

irtigor

Fora passar o nome certo do diretório e permissões (a propósito: 777 por via de regra sempre é um má ideia), pra funcionar como deseja na primeira mensagem, você tem que reiniciar o o programa (pra ele saber o novo local) e forçar uma análise do diretório (porque o db tem as informações do antigo e você precisa das informações dos arquivos disponíveis no novo diretório). Se está rodando ele como um daemon global os comandos a baixo devem ser o suficiente (toda vez que alterar o arquivo):


sudo service minidlna stop
sudo minidlna -R # mate depois do scan
sudo service minidlna start


Ou então usa esse programa da maneira que ele foi feito pra funcionar (sem ficar alterando a origem dos arquivos).

Nelson Quintanilha

Olá Ietigor
"Ou então usa esse programa da maneira que ele foi feito pra funcionar (sem ficar alterando a origem dos arquivos)."
Creio ser essa a melhor solução, já me debati muito sem nenhum resultado por uma coisa que deveria ser bem simples.

irtigor

É o melhor mesmo. Não dá pra simplesmente comentar ou descomentar um media_dir no arquivo de configuração porque esse arquivo é lido durante a iniciação do serviço, então pra ver alguma mudança tem reiniciar o mesmo. Isso não é uma exclusividade desse programa, vale pra maioria dos arquivos de configuração de quase todos os serviços, o que pode ser menos intuitivo é que ele usa inotfy pra saber quando um arquivo é adicionado (o kernel avisa, no lugar dele pessoalmente ficar listando o conteúdo do diretório atrás de alterações), e portanto quando você muda o media_dir é necessário forçar uma análise do diretório pra ele adicionar os arquivos no banco, já que pro kernel nada mudou pra gerar uma notificação.