Midia Server

Atualmente, diversos televisores podem reproduzir filmes a partir de um pendrive ou, no caso de webTVs, via rede. Contudo, muitos dos modelos de TVs disponíveis no mercado apresentam sérias limitações com relação aos formatos aceitos para reprodução. Isso pode provocar alguns incômodos na hora em que se deseja assistir em "tela grande" aquele vídeo que acaba de ser baixado da internet. Nesses casos, a implementação de um servidor de mídia que possua opções de transcodificação pode contornar tal limitação. Para aumentar as chances de sucesso é geralmente relevante que todos os dispositivos envolvidos sejam compatíveis com o padrão DLNA (Digital Living Network Alliance). De fato, vários sistemas operacionais já apresentam recursos compatíveis com DLNA. Contudo, uma atenção especial deve ser dada para a transcodificação, pois na maioria dos casos há somente um compartilhamento dos arquivos de mídia sem haver qualquer conversão de formato.

SERVIDOR DE MÍDIA: HARDWARE

A implementação de nosso servidor de mídia - DLNA, foi feita aproveitando um antigo PC. O hardware aqui empregado é composto por um Pentium 4 com clock de 3 GHz, contendo 2 GBytes de memoria DDR de 400 MHz (dois pentes de 1 GByte - single channel), uma placa de vídeo PCI Express x16 off-board, uma placa de som off-board PCI modelo SB16 e uma placa de rede wireless PCI (D-link modelo DWA510) de 54 MBPS, sendo tudo isso montado sobre uma placa mãe Intel D101GGC. Para otimizar o desempenho, reservamos um HD de 240 GBytesdlna (SATA 7200 RPM) para a instalação do sistema operacional Windows XP SP3 que servirá de base exclusiva para o servidor. No tocante a tal instalação, limitamos ao máximo os recursos a serem incorporados no sistema, instalando somente o básico indispensável para a operação correta do hardware. Ressalta-se que na instalação da placa de rede foi limitada somente à instalação dos drivers da placa wireless, deixando o sistema operacional administrar as conexões sem fio. Ou seja, não foi instalado qualquer software extra de gerenciamento de rede tal como aqueles contidos no CD que acompanha a placa utilizada. Adicionalmente, salienta-se que não foi instalado qualquer antivírus, que geralmente afeta bastante o desempenho da maquina, sendo o firewall do Windows completamente desabilitado. Rigorosamente falando, todos os serviços julgados como dispensáveis devem ser desabilitados para otimizar a performance do computador. Entre tais recursos, um bom começo é desabilitar as opções de visualização mais sofisticadas, para isso vá ao Painel de Controle > Sistema > Avançado > Desempenho > Configurações. Em Efeitos visuais, desabilite os efeitos indesejados, ou se preferir desabilitar todos, basta selecionar "Ajustar para o melhor desempenho". Uma relação de dicas para deixar o Windows XP mais rápido podem ser encontradas aqui. Elas foram colhidas de vários fóruns da internet. Use tais dicas com cautela e por sua própria conta e risco!

SERVIDOR DE MÍDIA: SOFTWARE

Como podemos imaginar, o presente servidor se mostra adequado somente para uma rede amigável, como é o caso de uma rede residencial que já possua um firewall adequadamente configurado para a conexão de internet. Salienta-se ainda que utilizamos uma rede caseira sem fio. Se sua rede for cabeada, a performance da mesma pode naturalmente sofrer um ligeiro incremento. No tocante a vírus, tenha em mente que o servidor esta completamente desprotegido. Em particular, recomenda-se desabilitar o "autorun" das mídias removeis. Para isso use o aplicativo TweakUI do Windows XP (download aqui) e execute o script NoAutorun.reg (download aqui). De fato, no PC aqui utilizado temos também uma segunda instalação do Windows XP, instalado em um outro HD. Então toda a transferência de arquivos para o HD que contem o servidor de mídia é feita via essa segunda instalação, desfrutando do antivírus e de outras ferramentas de verificação. Para o boot, utilizamos o GRUB para selecionar entre uma partição Linux (hd0,1), um Windows XP usado como Desktop (hd0,0) e o Windows XP usado para o Servidor de Mídia (hd2,0). Como o Windows apresenta problemas ao inicializar duas copias distintas em HDs diferentes, incrementamos o script do GRUB mapeamendo a unidade hd2 em hd0, e executando o boot a partir de (hd2,0) - veja e analise o script utilizado (download aqui). Alternativamente, podemos também utilizar o menu de boot oferecido pela BIOS, sendo esta opção a que é de fato a mais livre de falhas.

Universal Media ServerPara o servidor de mídia propriamente dito utilizamos o programa livre UMS - Universal Media Server, versão 3.5.0 para sistema Windows  (veja http://www.universalmediaserver.com ou efetue o download), adicionando também os pacotes recomendados: (i) AviSynth 2.5.7 (download aqui) em conjunto com o VsFilter (download aqui), (ii) VLC 0.9.8 (download aqui) e opcionalmente (iii) K-Lite Mega Codec Pack (download aqui). Salienta-se, contudo, que o UMS utiliza o JAVA JRE. Dessa forma a instalação prévia do JAVA torna-se obrigatória (veja http://www.java.com). Durante a instalação o UMS pergunta quanta memoria RAM deverá ser disponibilizada para o servidor. Presentemente, utilizamos 1546 MBytes - algo bem maior que o default, deixando o restante para uso do sistema operacional. Como a presente instalação do Windows XP é dedicada exclusivamente para executar o UMS, tal quantidade de memoria deverá ser satisfatória. Além disso, alguns ajustes devem ser feito ao gosto do usuário, como por exemplo, idioma da interface, definição dos folders para navegação, prevenir o sistema de dormir enquanto estiver transmitindo, esconder o diretório transcoder, etc. Para ajustes mais detalhados vale a pena analisar o arquivo de configuração UMS.conf, disponível no diretório onde o UMS foi instalado. Além desses pontos, é interessante considerar o envio dos arquivos em formatos normalmente aceitos pelo televisor sem que os mesmos passem pela transcodificação. Isso objetiva agilizar a transmissão de vídeos para os casos especiais onde a transcodificação é dispensável. Para isso acesse a guia "Definições de Transcodificação". Na aba "Video Settings", preencha o campo "Saltar transcode para as seguintes extensões" com as extensões dos arquivos separadas por virgulas. No presente caso, onde o televisor em questão é um SONY BRAVIA KDL31EX525, as extensões informadas foram mp4, mpg, wmv e mts. Portanto, para arquivos com tais extensões a transcodificação não será efetuada, sendo o arquivo enviado diretamente para o televisor cliente via a rede em questão.

SERVIDOR DE MÍDIA: RESULTADOS E COMENTÁRIOS

De uma forma geral, os resultados obtidos com o servidor descrito acima foram bastante satisfatórios. Contudo, alguns problemas de transcodificação foram detectados para arquivos avi com resolução elevada (caso ainda em estudo). Evidentemente, se um hardware mais poderoso for disponibilizado os resultados alcançados serão ainda melhores. Um comentário adicional deve ser feito com relação ao trafego da rede. No presente caso, o servidor e o televisor encontram-se na mesma rede, sendo roteados por um mesmo access point. Assim não há comprometimento no acesso de outros PCs a internet, pois no presente caso tais PCs são roteados por um modem/roteador independente. Em outras palavras, cabe sempre lembrarmos que as transmissões do servidor geram um trafego de rede significativo, algo em torno de 20 MBPS, devendo isso ser levado em conta já que a velocidade de comunicação é sempre um elemento crítico. Outro comentário diz respeito ao fato que estamos utilizando um único cliente (uma única TV). Apesar de testes mais elaborados não terem sido efetuados, as solicitações de diversos clientes ao atual servidor (com o atual hardware) possivelmente comprometerá bastante os resultados. Finalizando, realmente vale a pena implementar um servidor desse tipo, principalmente para dar alguma utilidade para aquele PC encostado em um canto qualquer. A coisa toda pode tomar um contorno mais serio quando empregamos um hardware mais potente. Entretanto, a velocidade de rede também deverá ser considerada.

Adicionalmente, saliento que este mesmo servidor (Universal Media Server) pode ser usado também para exibição de imagens estáticas (fotografias), arquivos de áudio (musicas) ou mesmo páginas de redes de teledifusão (via streaming). Tais recursos eu não explorei muito, contudo, até onde eu pude notar, o resultado é muito bom. Outra opção para servidores de mídia, são os aplicativos destinados aos tablets android. Existem diversos aplicativos deste tipo disponíveis no Google Play. Eles, de fato, funcionam razoavelmente bem. Contudo, todos que testei não efetuam conversão alguma de formato de mídia. Indo alem, existem ainda servidores de mídia baseados em miniPCs-Android ou mesmo no Raspberry PI (ou similares) que não foram aqui explorados. Para quem se habilitar: Boa sorte!

 O CHROMECAST

ChromecastUma outra opção interessante para, entre outras coisas, assistir um vídeo, é o Chromecast. Em linhas gerais ele funciona como um adaptador de rede sem fio inteligente cuja saída é conectada diretamente a uma entrada HDMI do televisor. Sua alimentação é obtida a partir de uma porta USB da própria TV ou de uma fonte externa que acompanha o dispositivo. O controle é feito via um aplicativo android, instalado em um tablet ou smartphone com android 2.3 ou superior, ou via a extensão Google Cast instalada no navegador Chrome do PC. Tanto a instalação como a configuração são extremamente simples. No presente caso, a configuração inicial foi efetuada usando um minitablet (ou mídia player) Samsung YP-G70 (android 2.3). Nesse processo, dois detalhes merecem um pequeno destaque. O primeiro refere-se ao fato de que o o código MAC do Chromecast não vem especificado nem no dispositivo nem na caixa em que veio embalado. Neste caso o controle de acesso (via MAC) da rede sem fio tem que ser temporariamente reconfigurado (ou seja, desabilitado) até o momento que, durante a instalação, o usuário tenha acesso ao MAC do dispositivo para que seu acesso seja adequadamente habilitado. O segundo detalhe diz respeito a atualização. Ao final da instalação o dispositivo pode, eventualmente, efetuar uma atualização automática. Portanto, tenha paciência.

Em termos práticos, aqui no Brasil, podemos visualizar videos do YouTube, Google Play, Netflix, etc,  via um tablet ou smartphone android, com excelente desempenho e qualidade. Obviamente isso dependeIcone do Chromecast muito da qualidade e velocidade de sua conexão banda larga e também da velocidade e estabilidade de sua rede sem fio. No caso do android, a instalação do aplicativo acima citado, adiciona aos aplicativos do YouTube, Google Play Videos, Netflix e Crackle (entre outros) um ícone na barra superior (ver ilustração ao lado) que quando ativado permite que o conteúdo do vídeo em exibição (por exemplo) seja automaticamente transferido para sua TV. Aparentemente, a diferença básica entre o Chromecast e um Servidor de Mídia reside no fato de que todo o trabalho com a leitura do vídeo a partir do servidor internet (YouTube, Netflix, Google ou Crackle), sua codificação e exibição na TV é completamente efetuado pelo Chromecast, liberando o tablet ou smartphone em questão para outras tarefas. Isso agiliza muito o processo e não exige demasiados recursos do tablet, podendo este ser usado para qualquer outra aplicação enquanto o Chromecast cuida da exibição do filme. De fato, o dispositivo android atua unicamente como um controle remoto via rede WiFi. Os testes efetuados foram feitos usando um Samsung YP-G70 e tudo correu perfeitamente bem.

Creio que atualmente as coisas estão limitadas ao YouTube, Google Play, Netflix e Crackle, já que os demais aplicativos suportados correspondem a "redes de teledifusão" que não são exatamente disponíveis no país. Para meu caso especifico, tudo bem! O Chromecast, constitui um meio de contornar o problema de que a SONY não disponibilizou, e aparentemente não vai disponibilizar, o Netflix para minha BRAVIA KDL31EX525. Saliento ainda, que no Brasil, até onde eu pude notar, o Chromecast esta sendo fornecido exclusivamente via alguns comerciantes do Mercado Livre, não despertando interesse algum das redes comerciais mais "tradicionais". Sei lá porque?

Pelo que pude notar, o uso do Chromecast em conjunto com um PC, via o navegador Google Chrome, é essencialmente diferente! Ao ativar o respectivo ícone, o conteúdo do navegador é dinamicamente transferido para o televisor. Assim, qualquer atualização no conteúdo dessa janela será automaticamente mostrada na TV. Testei esse recurso com a página do antigo Crackle usando um netbook HP mini 110-3130br (Intel Atom, 2 GBytes) e não obtive bons resultados. O vídeo, tanto no netbook como no televisor, fica "trancando". Os motivos disso não foram de fato analisados. Pode ser um problema de largura de banda da rede (pouco provável) ou do hardware do PC em questão (mais provável). Finalizando, use tais informações por sua conta e risco.

NOTA: Cabe observar que em alguns dispositivos android, rodando versões mais antigas desse sistema (4.1 ou anterior), podem apresentar vários problemas quando uma versão atualizada do Google Home ou Google Cast (chromecast.app) é utilizada. Para contornar isso, tente desinstalar a versão mais nova e instalar outra mais antiga. Para isso, consulte, por exemplo, o site http://www.uptodown.com. Saliento ainda que definitivamente, para mim, não valeu a pena atualizar tal aplicativo nem o aplicativo do Netflix, pois me rendeu várias dores de cabeça e tive que sair procurando versões anteriores pela internet. Fica a dica .....