segunda-feira, 29 de dezembro de 2008

Cliente VDR + DXR3

Depois de alguns meses sem assunto para postar um tópico neste blog veio-me a idéia de construir um VDR Box em modo cliente usando uma placa DXR3 para processamento das streams MPEG2 e saída de vídeo para a TV.

Para quem não sabe ainda uma DXR3 é uma placa PCI decodificadora de MPEG2 via hardware com saída de áudio e vídeo (Svídeo) para ligar numa TV. Eis a carinha dela abaixo:


Esta placa acompanhava os primeiros kits de leitores de DVD nos tempos do Pentium II. Ela era necessária pois as CPUs da época não tinham capacidade para processar em tempo real fluxos de áudio e vídeo de alta resolução (720x480). Como tenho uma placa desta ociosa em casa decidi usá-la como saída de áudio e vídeo bem como aproveitar o excelente chip decodificador de MPEG2 que ela possui.

Comecei baixando uma imagem de instalação do Ubuntu Server 8.04. Esta versão do Ubuntu não contém interfaces gráficas e como não precisaremos delas neste projeto caiu como uma luva. Em seguida segui o excelente tutorial do Mr. Hooch - http://www.hoochvdr.info para instalar o sistema básico desta distro.

Com o sistema básico instalado e com as bibliotecas mínimas necessárias para compilar drivers no kernel devemos partir para a instalação do módulo necessário ao funcionamento da placa DXR3. Podemos obter os sources em http://dxr3.sourceforge.net/download.html e o processo de compilação é bem simples. Toda a informação necessária encontra-se no arquivo readme dentro da pasta descompactada.

Em seguida devemos instalar o VDR conforme descrito no site do Hooch bem como o plugin vdr-dxr3 que pode ser encontrado em http://www.schluenss.de/DXR3.html. Aproveitei a disposição e compilei e instalei também o LIRC dos fontes do projeto em http://www.lirc.org. Escolhi o dispositivo serial e o controle remoto apresentados num dos tópicos iniciais deste blog.

Feito isso temos um excelente Box Cliente usando o VDR mas como não tenho um sintonizador para este box não há como sintonizar quaisquer canais DVB-s. Instalando alguns plugins (mp3, mplayer, dvd, rssreader, mailbox, ...) e conectando-o à internet podemos transformá-lo num equipamento infinitamente superior a qualquer DVD Player existente no mercado.

Como tenho na minha sala de estar um Box Servidor com VDR (vide posts iniciais) dotado de duas placas sintonizadoras (Technotrend Premium e Skystar 2) e adicionando o plugin streamdev - http://streamdev.vdr-developer.org em modo server transformei-o em um servidor de stream MPEG2 na minha rede mista (cabo e wireless). Instalei o mesmo plugin em modo cliente no meu Box desprovido de sintonizador e cá estou eu assistindo os canais digitais no meu quarto enquanto o meu filho monopoliza a TV da sala de estar.

Este sistema é completamente independente pois enquanto o VDR da sala ocupa um sintonizador o segundo tuner fica livre para ser usado pelo VDR do quarto. Dependendo da distribuição dos canais nos transponders do satélite é possível até agendar uma gravação de um terceiro ou quarto canais enquanto dois canais distintos são visualizados nas duas TVs. Isto é possível pois no sistema DVB vários canais de rádio e TV podem ser dispostos numa mesma frequência.

Já estou até pensando em construir um terceiro VDR Box em modo cliente para instalar na cozinha ou numa sala de projeção de TV reservada.

A composição do meu VDR Box Cliente ficou assim:

. Gabinete Clone (vide post inicial);
. Placa mãe ITX GigaPro - 800 MHz;
. 128 MB de RAM - DDR2 PC2100;
. HD IDE de 20 GB;
. Leitor de DVD;
. Sensor IR serial;
. Controle Remoto Hauppauge;
. Placa DXR3;
. TV de 14" com entrada RCA.


O software do Servidor:

. Ubuntu Server 8.04 básico (sem xwindow);
. LIRC (lirc_serial);
. VDR 1.6.0 (fontes);
. Plugin vdr-streamdev-server;
. Demais plugins (dvd, rssreader, mp3, mplayer, ...).


O software do Cliente:

. Ubuntu Server 8.04 básico (sem xwindow);
. Driver para DXR3;
. LIRC (lirc_serial);
. VDR 1.6.0;
. Plugin vdr-dxr3;
. Plugin streamdev-client;
. Demais plugins (dvd, rssreader, mp3, mplayer, ...).


Quem não tem uma DXR3 dando sopa pode implementar o mesmo box cliente usando o monitor como TV. Não fiz isso ainda mas existem várias possibilidades (softdevice, xineliboutput, ...). Pretendo num próximo post falar um pouco destas possibilidades.