Servidor de Mídia com 128 MB de RAM

Aqui, vamos nós nesse novo desafio, criar um servidor de mídia para ser acessado por vários dispositivos, como Xbox, PS3, celular, Laptop, TV, etc. Vamos fazer stream de vídeos, fotos e áudio na rede com um computador limitado a 128 MB de RAM, Pentium-3 850Mhz e 20 GB de HD.

[ Hits: 44.284 ]

Por: M4iir1c10 em 25/03/2014 | Blog: https://github.com/mauricioph


O plano



Primeiro, vamos começar com as instalações.

Lembrando que se trata de um computador com recursos limitados, eu vou instalar as aplicações e fazer alterações em todas elas, para que rodem de forma satisfatória nesse ambiente.

Porém, se você tem um computador com mais recursos, não precisa seguir esse artigo à risca, você pode instalar as aplicações e não aplicar as alterações que eu vou fazer, porque em matéria de instalação e bem direto apt-get install e já era!!!

Se você está no mesmo barco que eu e tem um computador limitado, por favor, procure fugir das suas distros preferidas e aventure-se em um mundo, talvez, desconhecido.

Eu sei que existe uma multidão de usuários do Ubuntu lendo esse artigo e eu digo sem ofensas, o Ubuntu é muito carregado para esse ambiente de 128 MB, você pode até dizer que vai rodar sem o X11, mas acredite, mesmo sem o X11, se você instalar um Ubuntu aqui, você não vai ter o desempenho total que você poderia ter com outra distro. Por favor, não atire a primeira pedra sem antes testar o que eu estou falando.

Antes de decidir qual GNU/Linux usar nesse computador, eu fiz o teste com três distros; eu tentei instalar mais que três, porém, sempre esbarrava em alguma coisa que não funcionava, monitor, mouse, rede sem fio, etc. As únicas três distros que rodaram sem problemas, foram Debian Squeeze, CrunchBang e ArchBang.

Minha opinião final é a seguinte:
  • Debian :: apesar de rodar nesse ambiente, não é o mais apropriado se você não o conhece, pois ele vai precisar de algumas configurações extras.
  • CrunchBang :: excelente para esse ambiente, é uma alternativa para quem vem da família do Ubuntu, apesar do Crunch não ser baseado no Ubuntu, ele é baseado no pai do Ubuntu, o Debian. Porém, ele é mais pré-configurado que o Debian.
  • ArchBang :: se você não tem medo de experimentar algo novo e quer o máximo de proveito da sua máquina, Arch é o sistema para você.

Caso contrário, você prefere não se aventurar, quer uma coisa mais segura no sentido que você sabe o que está fazendo e quer evitar recorrer ao Google toda vez que esbarrar em problemas, mantenha-se com o Crunch.

Eu vou explicar à maneira do CrunchBang, bem que eu gostaria de ensinar à maneira Arch, porém, como o Arch é um mundo novo para mim e eu estou ensinando, é melhor evitar falar besteira. Eu vou explicar a maneira que eu já sei.

Caso alguém queira comentar a respeito do Arch, os problemas que eu enfrentei foram somente dois: um, eu não consegui converter o script de inicialização para o systemd para fazer da aplicação um serviço do sistema e, o segundo problema, é que ao fazer um pacman -Syyu, eu quebrei o meu sistema. :(

Mas uma coisa é certa, tudo o que eu estou fazendo aqui, é possível ser feito em todas as distros, caso você tenha um Gentoo, Arch, Sabayon, etc, você sabe como converter os scripts de inicialização de serviços para systemd, vá em frente. Se alguma aplicação aqui indicada, não tem um binário no seu repositório, veja o site do criador do software, lá você vai ter acesso ao código-fonte e pode compilar.

Para instalar o CrunchBang, siga as instruções pelo nosso amigo VOLeiro "Removido". Sério, é esse nome mesmo, e de acordo com o perfil dele, ele tem 113 anos de experiência. :)
MediaTomb - é o nosso programa principal que vai fazer o Stream do conteúdo na rede, portanto, todo o poder da RAM vai ser exclusivo dele, não vamos limitar ele, correto?

ERRADO, ele é sim a peça mais importante, porém, vamos limitá-lo. Nada de transcoding ou escaneamento por inodes, no caso de você ter mais de 1000 mídias no seu HD, aposente o SQLite e use o MySQL. Eu sei que tem gente que vai dizer que isso não faz sentido, porém, isso faz sim.

MySQL - o banco de dados MySQL usa mais recursos que o SQLite em base de dados com poucas entradas, para tal, o SQLite é melhor, porém, se você tem uma base de dados que passam de 1000 entradas, os valore se invertem e o SQLite começa a empacar. Assim sendo, vamos usar o MySQL com recursos reduzidos.

Eu sei que o MySQL é mais cheio de bugs que o SQLite, porém, os dados armazenados serão links para mídia, ou seja, se um ficar errado, é só recarregar a database e pronto, links serão corrigidos.

Apache - o mais experiente dos servidores. Nessa escolha, você pode até dizer que eu falhei, pois existem forks do Apache que são melhores. Alguns podem até citar nomes, como Cherokee, lighttpd, thttpd, etc. Porém, aqui, eu preferi uma tática mais segura.

Já que eu não conheço outro servidor HTTP, eu preferi me manter seguro no que eu já conheço e não me aventurar, assim sendo, eu vou reduzir os recursos do Apache também.

Como você pode ver pela explicação que eu dou, esse artigo e bem modulado, quer dizer, tem coisas que eu vou falar aqui que podem ser ignoradas e outras que podem ser aprimoradas, se você encontrar alguma configuração que faz o trabalho melhor que o que eu apresento aqui, por favor, poste seu comentário e enriqueça o artigo.

Página anterior     Próxima página

Páginas do artigo
   1. A ideia
   2. O plano
   3. Instalando o sistema
   4. Configurações
   5. HD como dispositivo permanente
   6. Acesso aos arquivos
   7. Fazendo a manutenção
Outros artigos deste autor

5 comandos que ninguém nunca deve executar no Linux

Criando vídeo com características de DVD

Máquina Enigma e encriptação em XOR

Bug afeta todas as distros

Malware, Vírus e Hacking. Estamos seguros usando Linux?

Leitura recomendada

Configurando o Asterisk com autenticação LDAP

Instalando e configurando ntfs-3g no CentOS 5.2 Linux

Instalando gerenciador de projetos Redmine usando o PostgreSQL sobre o nginx

Incrementando o visual do KDE 4

Eclipse integrado com Tomcat 5 no Ubuntu

  
Comentários
[1] Comentário enviado por mattos_gru em 21/03/2014 - 01:57h

Grande Mauricio!

Ótimo artigo. À medida em que lia, já esquematizava minha instalação aqui.

Grato pela ideia, vou poder guardar as pilhas de cds e dvds (acho até que vou digitalizar alguns VHSs familiares).

Só não tenho um Nobo/Lap "Véio".

Mesmo assim vou montar numa VB e depois que arrumar
um hardware (Lap ou Desk) passo para ele.

Vou seguir os mesmos passos usando o Debian.

Dica para o config do Apache (roda assim em 2 servers de produção):

MaxSpareServers 3
MinSpareServers 1
StartServers 1

Essa config atende um escritório com 8 estações.

Quanto aos aplicativos clientes pretendo utilizar tambem o Audacious e o Kaffeine.

Acredito que voce tenha despendido de 2 a 3 semanas de tempo no seu projeto.

Na medida em que o tempo me permitir passarei os resultados, penso que demorarei uma ou duas semanas.

Abraço

[2] Comentário enviado por m4iir1c10 em 21/03/2014 - 05:33h


[1] Comentário enviado por mattos_gru em 21/03/2014 - 01:57h:

Grande Mauricio!

Ótimo artigo. À medida em que lia, já esquematizava minha instalação aqui.

Grato pela ideia, vou poder guardar as pilhas de cds e dvds (acho até que vou digitalizar alguns VHSs familiares).

Só não tenho um Nobo/Lap "Véio".

Mesmo assim vou montar numa VB e depois que arrumar
um hardware (Lap ou Desk) passo para ele.

Vou seguir os mesmos passos usando o Debian.

Dica para o config do Apache (roda assim em 2 servers de produção):

MaxSpareServers 3
MinSpareServers 1
StartServers 1

Essa config atende um escritório com 8 estações.

Quanto aos aplicativos clientes pretendo utilizar tambem o Audacious e o Kaffeine.

Acredito que voce tenha despendido de 2 a 3 semanas de tempo no seu projeto.

Na medida em que o tempo me permitir passarei os resultados, penso que demorarei uma ou duas semanas.

Abraço


Ola Cleber,

Que bom que voce gostou do artigo, agora que voce vai digitalizar sua colecao leia esse meu outro artigo que vai te ajudar ainda mais http://vivaolinux.com.br/artigo/Criando-video-com-caracteristicas-de-DVD

Eu usei o exemplo do laptop porque esse foi oque a minha esposa tinha guardado por muitos anos, porem o melhor e usando um desktop, porque a torre te proporciona o espaco nescessario para a intalacao de mais HDs e evita as instrucoes que eu dei com relacao ao HD permanente no usb. Se voce coloca dentro da torre o Linux vai automaticamente reconhecer como HD permanente.

Obrigado pela dica de conf do apache, sua contribuicao e muito bem vinda.

Eu levei bem mais que 3 semanas para desenvolver esse artigo, para fazer o servidor rodar pela primeira vez levou 2 dias e eu ja estava fazendo streaming dos meus arquivos... oque demorrou mais foi aprender com os meus erros, fazer o HD permanente foi o primeiro obstaculo, toda vez que o computador desligava eu tinha problemas porque os sistema montava o hd em pastas diferentes e assim eu perdia tudo na database... so que com o passar do tempo pude rever oque estava errado e produzir esse artigo... mais uma revelacao dos bastidores, eu deixei esse artigo em construcao por mais de um ano antes de publicar, porque eu queria ter certeza que qualquer pessoa que fazer oque eu fiz nao teria que passar pelos problemas que eu passei e tambem se alguem passar por algo que seja simples porem nao seja do seu conhecimento eu tenho um pouco de esperiencia para poder resolver o problema :)

[Desculpe a falta de acento, os teclados aqui nao possuem acentos :) ]

[3] Comentário enviado por mattos_gru em 21/03/2014 - 18:55h

De volta Mauricio!

Consegui no escritohrio de um cliente/amigo uma CPU P4 HT com 512 MB de RAM. Agorah estou a cahssa de uma HD IDE que tenho por aquih - ou seria Sata?!, naum me recordo.

Diversaum garantida para o fim de semana.

Quanto ah acentuasaum, naum se preocupe, o importante eh que nohs possamos nos entender (aprendih a escrever desta forma com meu filho, ateh hoje troco msgs com ele assim).

Brincadeiras à parte - os teclados aqui estão com acentuação - utilizo um mini-wireless, comprado por aí nas terras altas e frias, com layout Alemão QWERTZ, mas até que já me adaptei à ele - grato pelo artigo de criação de DVDs, muito útil.

Bem, vou encomendar duas redondas e umas seis latinhas (acho melhor doze), a madrugada vaí ser lonnnnga!

Bom final de semana!

[4] Comentário enviado por thiagocantero em 21/03/2014 - 21:09h

Parabéns pelo artigo!
Fantástico!
Muito bem detalhado e explicado!Gostei até mesmo das partes com humor que você inseriu no texto!Ficou bem legal mesmo!
Fico feliz em ver artigos sempre úteis e utilizando por vezes materiais até mesmos "simplistas", costumo comentar com amigos que nós subutilizamos a tecnologia de uma forma geral, trocando computadores, celulares e smartphones como se fossem roupa e por vezes eles ainda são úteis e muito úteis por sinal!
Mais uma vez parabéns pelo exposto!
Deus te abençoe!

Abraços

Thiago Cantero Mari Monteiro

[5] Comentário enviado por maran em 22/03/2014 - 11:35h

Parabéns , sensacional este artigo.

[6] Comentário enviado por edsonpira em 26/03/2014 - 23:27h

Amigo...excelente artigo....não só da ideia, mas como foi escrito...eh um best seller....

Tenho um vaio com athon que esta capenga...lá no fundo do armário (e esposa querendo a reciclagem dele no arquivo morto - vulgo lixo)...bom já achei um motivo para ressuscita-lo....

Tenho um TL-MR3420 com OpenWRT e midiabox, funciona legal (TV, Tablet, note, Smartphone, mas é bom dar uma função nova para os novos velhinhos equipamentos...

Valew

[7] Comentário enviado por fabregas em 27/03/2014 - 21:14h

Cara quando eu vou iniciar o mediatomb com o /init.d ele sempre falha. Você sabe o que pode ser? Fiz tudo certinho de acordo com o tutorial que você fez no arquivo config.xml. A unica coisa que deve ser feita e isso ne? pesquisei na pasta so tem esse arquivo.

[8] Comentário enviado por mattos_gru em 28/03/2014 - 15:28h

Olá Mauricio,

novamente por aqui!

Bem, minhas experiências com a Box P4, infelizmente, ainda não resultaram - de bom só estavam a pizza e as cervejas.

A despeito da CPU P4 3.0Ghz disponibilizar HT, a MoBo não o faz e tambem as portas USB são 1.1, o que resultou em baixíssimo throughput.

Alem disso, fui obrigado a usar um HD Ide - o que tambem não resultou em grande coisa para dow/up stream.

A MoBo tem Sata onboard, mas trata-se de Sata I e, o HD ao qual eu estava à "caça" - finalmente achei-o no fundo de um armário - é um Sata II que a MoBo/Bios não querem reconhecer - no case externo roda perfeito.

Bem, vou "inventar" algo e à medida que houver algo de concreto, posto aquí.

Nice weekend,

Mattos

[9] Comentário enviado por removido em 31/03/2014 - 15:10h

Excelente artigo.

Mas eu adotaria um outro método mais simples:

1. Instalar o Ubuntu Minimal (somente com aquilo que será usado, desta forma economizando muita memória e processamento).
2. Instalar o MediaTomb.

O próprio MediaTomb possui uma interface de configuração que pode ser acessada pela rede, assim não é necessário instalar o Apache e o Webmin. Acredito que se o objetivo é apenas executar um servidor DLNA, não há a necessidade de instalar outros serviços. Isto vai poupar e muito a memória RAM da máquina, e ela vai ser mais rápida no final das contas.


[10] Comentário enviado por m4iir1c10 em 03/04/2014 - 04:52h


[7] Comentário enviado por fabregas em 27/03/2014 - 21:14h:

Cara quando eu vou iniciar o mediatomb com o /init.d ele sempre falha. Você sabe o que pode ser? Fiz tudo certinho de acordo com o tutorial que você fez no arquivo config.xml. A unica coisa que deve ser feita e isso ne? pesquisei na pasta so tem esse arquivo.


Qual e a mensagem que voce recebe ao iniciar o servico?

[11] Comentário enviado por m4iir1c10 em 03/04/2014 - 04:56h


[8] Comentário enviado por mattos_gru em 28/03/2014 - 15:28h:

Olá Mauricio,

novamente por aqui!

Bem, minhas experiências com a Box P4, infelizmente, ainda não resultaram - de bom só estavam a pizza e as cervejas.

A despeito da CPU P4 3.0Ghz disponibilizar HT, a MoBo não o faz e tambem as portas USB são 1.1, o que resultou em baixíssimo throughput.

Alem disso, fui obrigado a usar um HD Ide - o que tambem não resultou em grande coisa para dow/up stream.

A MoBo tem Sata onboard, mas trata-se de Sata I e, o HD ao qual eu estava à "caça" - finalmente achei-o no fundo de um armário - é um Sata II que a MoBo/Bios não querem reconhecer - no case externo roda perfeito.

Bem, vou "inventar" algo e à medida que houver algo de concreto, posto aquí.

Nice weekend,

Mattos


Talvez nao esta reconhecendo por causa de alguma limitacao imposta na BIOS, checa a configuracao, mais por favor so mude se voce tem nocao doque esta fazendo... antes de mexer na BIOS lembre das sabias palavras do tio Ben para Peter Parker "Com grandes poderes, vem grandes resposabilidades" :)

[12] Comentário enviado por m4iir1c10 em 03/04/2014 - 05:07h


[9] Comentário enviado por bilufe em 31/03/2014 - 15:10h:

Excelente artigo.

Mas eu adotaria um outro método mais simples:

1. Instalar o Ubuntu Minimal (somente com aquilo que será usado, desta forma economizando muita memória e processamento).
2. Instalar o MediaTomb.

O próprio MediaTomb possui uma interface de configuração que pode ser acessada pela rede, assim não é necessário instalar o Apache e o Webmin. Acredito que se o objetivo é apenas executar um servidor DLNA, não há a necessidade de instalar outros serviços. Isto vai poupar e muito a memória RAM da máquina, e ela vai ser mais rápida no final das contas.



Obrigado pela sua contribuicao, realmente faz sentido usar somente o MediaTomb ja que oque nos interessa e o servico de DLNA. Porem existe razoes pela qual eu instrui instalar o apache e o Webmin...

Webmin Executar comandos de manutencao, configuracao e reparo de forma simples sem ter que memorizar comandos ( Isso ajuda em muito os novatos que nao sabem ou nao gostam de usar o terminal )

Apache A razao pela qual eu indiquei o apache e por causa da vasta gama de opcoes voce tem ao usar o servico de http, por exemplo digamos que o usuario so tem o vlc e a colecao de midia da pessoa e enorme... usando o DLNA no VLC e muito lento agora se a pessoa configura o HD como um servidor http e a pessoa sabe a estrutura das pastas e onde encontrar a midia a unica coisa que a pessoa deve fazer e abrir um stream apontando para o ip da maquina e o caminho do video ou da musica.

Por exemplo no meu caso que quero assistir o classico Akira eu abro o vlc tanto no computador como no celular e abro a seguinte url
http://192.168.39.117/videos/Movies/Animations/Akira.avi

Outra boa funcionalidade do apache e para a manutencao do mysql usando o phpmyadmin.
eu tambem tenho uma interface web que uso para armazenamento do meu catalogo de videos.

Infelizmente eu percebi que estava demorando muito para produzir o artigo e para nao ficar muito longo eu resolvi resumir e acabei deixando algumas lacunas no meu artigo... mais da para rodar bem com todos os servicos que eu descrevi e eu consegui rodar videos em todos os meus dispositivos de uma so vez sem enroscar o stream...

[13] Comentário enviado por devauxcl em 09/04/2014 - 16:37h

Excelente tutorial, gostei muito!
Agora dá pra esquecer os dvds à vontade!

[14] Comentário enviado por Carlos_Cunha em 10/04/2014 - 21:22h

Amigo uma duvida, ele faz Streming ou seja o procesamento e nele? Peço isso por possuo um Xbox porém ele não reconhece legendas e muitos formato,etão uso o PLEX(media server também) para processar o video e rodar na televisão via xbox. Ou aqui ele so libera um compartilhamento via DLAN( ou outro).
Abraço

[15] Comentário enviado por m4iir1c10 em 11/04/2014 - 05:01h


[14] Comentário enviado por PretooOO em 10/04/2014 - 21:22h:

Amigo uma duvida, ele faz Streming ou seja o procesamento e nele? Peço isso por possuo um Xbox porém ele não reconhece legendas e muitos formato,etão uso o PLEX(media server também) para processar o video e rodar na televisão via xbox. Ou aqui ele so libera um compartilhamento via DLAN( ou outro).
Abraço


Da maneira a qual eu ensino a configuracao aqui ele so esta liberando o acesso ao protocolo DNLA e servindo a localizacao da midia, porem ele pode tambem fazer o processamento de conversao ele possui suporte para comandos de conversao no qual ele vai usar a entrada de comandos direto no xml de configuracao dele. Se voce quizer experimentar veja esse link http://mediatomb.cc/dokuwiki/transcoding:transcoding

Outra coisa que voce pode fazer se estiver usando o XBMC e carregar a legenda direto do site opensubtitles.org na tela.

Entre em Settings -> Video -> Subtitles
Selecione o idioma e no servico padrao de legendas escolha o padrao ou baixe mais clicando em "buscar mais" (Get more).

Se voce escolher um servico que pode ser ajustado os ajustes sao feitos aqui:
Settings -> Add-ons -> Enabled Add-ons -> Subtitles -> select the service add-on -> Configure

Essa configuracao e para o XBMC e nao o software original do Xbox.

[16] Comentário enviado por marbreu em 30/06/2014 - 21:16h

Cara D+ este artigo parabéns...

[17] Comentário enviado por JJSantos em 12/10/2014 - 20:45h

Muito bom seu artigo.
Parabéns!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts