Experiências com a placa de captura de TV PixelView PlayTV Pro. Essa placa para sintonização e gravação de TV e vídeocassete foi comercializada até 2006, no Brasil, e era uma das mais baratas do mercado. No entanto, apesar de barata, produz resultados bastantes compensadores, tecnicamente. A PixelView PlayTV pro tem o chip BT878+, com sintonizador Philips FM1236 (NTSC), que também sintoniza rádio FM. O sintonizador é NTSC porque o sistema brasileiro de TV é NTSC-M com cor PAL. O controle remoto é controlado pelo chip Jaesc IRDC357-M. A placa também tem um chip Philips HEF 4052BT, um multiplexador/desmultiplexador análogo dual de 4 canais. Pelo nome bonito e difícil, imagino que seja um processador de som.
Essas coisas a gente descobre anotando os números dos chips e procurando no Google.
No kit, veio um pequeno cabo para ser ligado na saída da placa de vídeo à entrada da placa de som. Mas, como a PlayTV Pro tem entrada e saída de áudio internas na placa, eu liguei a saída interna à entrada interna da placa de som (AUX) com um cabinho de áudio que a gente encontra em lojas de informática para ligar o CD diretamente à placa de som. Dessa maneira, liberei as entradas e saídas externas das placas.
Graças ao chip de controle remoto, você pode controlar seu micro com o Remote Control (freeware para Windows) ou LIRC (open source para Linux). Não apenas os programas de TV, mas qualquer coisa no micro.
DScaler
Sem nenhuma surpresa, os programas que vem com a placa PlayTV, para Windows, são bem ruinzinhos. Não só isto: o driver para Windows da Conexant (fabricante do chip BT878), usado pelos fabricantes de placas de TV, não é bem desenvolvido. Por exemplo, os programas demonstrativos de gravação de vídeo da Microsoft não funcionam com eles, não sintonizam. O pior de tudo é que o sintonizador/gravador de TV não grava compactado nem sabe fazer uso de codecs de compactação de vídeo. Ou seja, os arquivos de vídeos ficam tão gigantescos que não se torna prático gravar em qualidade total, 640 x 480 pixels de resolução, 30 quadros por segundo.
Para ambiente Windows, o melhor programa para se ver TV com qualquer placa é o open source DScaler. Como ele tem seu próprio driver, não é afetado pelo limitado driver original da Conexant. Sobre o tvtime do Linux, ele tem a vantagem de maior número de opções e a possibilidade de gravar os programas (o tvtime é só player). Talvez o DScaler seja, um dia, portado para Linux. Afinal, boa parte do seu código é herdado do driver bttv do pingüim.
O melhor desempenho é obtido com computadores rápidos, que podem aplicar efeitos de desentrelaçamento em tempo real.
No meu caso eu configurei o DScaler para fazer 640 leituras por linha de TV (menu “Bt Card > Pixel width”). Isto é o máximo que a BT878+ pode capturar. Eu poderia ter colocado 720, mas acho que seria desperdício, pois a placa só me devolve imagens com um máximo de 640 pixels. Em todo o caso, tenho que fazer mais testes sobre uso de recursos computacionais e qualidade da imagem. Um detalhe: é melhor que todos os canais estejam com a mesma largura de pixel, ou poderá acontecer um erro ao se mudar de canal, e o programa ficará instável.
Captura com Dscaler
Com o programa Dscaler, é possível se gravar vídeos da TV. Normalmente, ele só grava 240 linhas, por problemas que podem aparecer no desentrelaçamento. Mas é possível se modificar um parâmetro e permitir que ele grave 480 linhas. Fiz uma cópia do arquivo de configuração dscaler.ini, no diretório do programa. Abri com um editor de texto comum e modifiquei, na seção [TimeShift], o parâmetro RecHeight=1. Coloquei RecHeight=0, conforme li em algum fórum da internet. Pronto. Agora consigo 480 linhas de altura.
A largura da vídeo capturado é determinada pelo parâmetro pixelwidth, pelo menu “BT Card” do Dscale. Embora seja possível se definir este parâmetro individualmente para cada canal, é melhor deixar este valor global para todos os canais, já que um bug do Dscaler faz o programa ficar instável quando se muda de canal e eles têm largura de pixels diferentes.
Para uma gravação final de fonte originalmente feita em videotape, deixo o deinterlace ligado. O Dscaler faz o melhor deinterlace on the fly do mercado. Para posterior edição, talvez seja melhor deixar o deinterlace desligado (opção video weave) e aplicar o desentrelaçamento no VirtualDub, na cópia final. Isso evita a perda de frames durante a gravação, já que o deinterlace consome muito processamento. No meu novo Sempron 2800+, sem o deinterlace, o consumo de CPU é de 50%. Com o deinterlace ligado, o consumo chega a 100% e há perda de alguns frames, na gravação a 30 quadros por segundo.
Para gravação de fonte originalmente feita em filme químico (filme de cinema telecinado), o melhor é deixar o desintrelaçamento com reconhecimento automático de filme, ou 3-2 pulldown, ou telecine inverso. Isto corta a captura de seis frames por segundo, deixa o resultado muito bom e é mais rápido. Mas só funciona com filmes.
Melhor amostragem
Com um computador lento, é aconselhável usar um desentrelaçamento rápido (simple weave), além de colocar a largura de amostragem até pela metade: 320 pixels. A quantidade de dados a processar cai pela metade, e o processador tem tempo de aplicar desentrelaçamento em tempo real sem perder muitos frames. Apesar da queda de amostragem, o olho humano não percebe muita perda de qualidade, já que as 480 linhas continuam sendo vistas.
É mais ou menos este o truque do VHS: imagens de videocassete continuam com as 486 linhas horizontais da TV broadcast, mas as amostragens por linha baixam a cerca de 240 para que o sinal caiba na largura de banda estreita do VHS. A gente não nota muito a perda. Então, a resolução do VHS corresponde aproximadamente a de uma tela 640X480 capturada em 320×480. Se capturarmos a resolução máxima de 640×480, teremos uma imagem com o dobro da resolução do VHS. Na prática, é uma resolução próxima à da TV comercial.
Frames per second
Para economizar no tamanho do arquivo, é melhor diminuir a taxa de quadros por segundo do que diminuir a resolução. É melhor ter alguns 15 quadros bons do que ter 30 ruins. E o olho humano percebe a freqüência de quadros menos do que a definição da imagem. Assim, é mais eficiente reduzir a qualidade daquilo que o olho percebe menos.
Uma boa taxa de quadro por segundo, bem econômica, é de 15fps. É a metade da taxa de quadros da TV comercial, aproximadamente. E é a mesma velocidade usada pelo cinema mudo, no início do século 20. Ou seja: a humanidade está acostumada com este ritmo. A economia é de 50% no processamento e no tamanho do arquivo resultante. Como o processador trabalhará mais livre, a chance de perder quadros é pequena. A imagem, então não ficará “pulada” como poderia acontecer em velocidades mais altas.
Codec
Um dos melhores codecs do mercado é o Xvid. Durante algum tempo tive excelentes resultados com o Xvid compilado pelo programador Koepi. A gravação era mais rápida que qualquer outro, e o resultado, excelente. Depois, algo saiu terrivelmente errado e tudo ficou ruim: o resultado final e o tempo de gravação. Aí, troquei pelo ffdshow com biblioteca Xvid. Por alguma razão do insondável mundo da informático, nunca mais consegui bons resultados com o Xvid do Koepi.
A melhor maneira de conseguir codecs é instalar o K-Lite Codec Pack, que você consegue em bons sites de downloads.
Áudio
Quanto ao áudio, recomendo não economizar. Geralmente é uma boa idéia gravar o áudio sem compressão, para não sobrecarregar a CPU. Depois, no VirtualDub, regravar a imagem desentrelaçando e comprimindo o som em MP3. Por alguma razão que desconheço, os drivers MP3 Lame não são reconhecidos. Tenho de usar a compressão em baixas taxas de bits do driver original do instituto alemão Fraunhofer, inventor do MP3. O som não fica lá essas coisas.
Para placas de captura sem estéreo, é uma boa idéia gravar o som em amostragem de 44100 Hz, 8 bits, mono. O fato de usar oito bits em vez de 16 corta o tamanho do áudio pela metade sem que o ouvido perceba muito. O importante, para o ouvido, é a freqüência, que se mantém em qualidade CD. Embora o rádio FM da placa PlayTV Pro seja estéreo, o receptor de TV é mono. Então, só gravo um canal, o que também corta pela metade o tamanho do áudio. Sem que o ouvido perceba, os dados de áudio ficaram quatro vezes menores do que em qualidade CD de 44100 Hz, 16 bits, stereo.
Still frames
Com uma largura em pixels estreita (320), as imagens paradas capturadas (still frames) têm a metada da largura, ou seja, aparecem “comprimidas” na vertical. Para ter imagens normais, eu as amplio no IrfanView 100% na horizontal e zero porcento na vertical. Isso restaura facilmente a proporção original da imagem. É possível se fazer conversão em batch pelo IrfanView: um monte de imagens pode ser convertido de uma só vez.
Essa baixa largura em pixels também ajuda a disfarçar ruídos na imagem, chuviscos, interferências.
Altura da imagem
A quantidade de linhas horizontais de captura da placa é de 480. Este é o tamanho padrão VGA, em computadores. É, também aproximado ao tamanho da imagem de TV. No sistema NTSC, usado no Brasil, aproximadamente 486 linhas são dedicadas à imagem. Com a BT878, perde-se seis linhas, o que não é nada comparado ao que as TVs domésticas mal-reguladas perdem. E TVs estão sempre mal reguladas.
Resumindo: a captura de 640×480 pixels da BT878+ é adequado ao sistema de TV atual, capturando e mostrando imagens sem grandes perdas.
Drivers opcionais
Se você quiser mesmo usar o driver da Conexant (por exemplo, para usar os programas de gravação de vídeo da Microsoft, Adobe Première e programas que ainda trabalham com o antigo sistema Video For Windows), a melhor opção é usar o driver BT878 melhorado por um argentino. Como é argentino, deve ser o melhor driver do mundo.
A Conexant deixou o código fonte disponível por alguns meses, no final dos anos 90. Depois, tirou de linha. Mas o código já tinha sido difundido. Várias pessoas melhoraram o programa, como este argentino. Um russo também melhorou o driver original.
Leia o tutorial sobre como instalar este driver argentino do chip BT878 no site Boa Dica.
Entre outras coisas, o driver argentino do BT878 tem opção de controlar o gama da imagem de TV. Vídeo em computador sempre tem o gama desequilibrado, e é bom a gente clarear as áreas mais escuras da imagem sem precisar mexer no brilho e contraste do monitor.
Outra opção de driver é o russo da iuLab, também resultante do driver Conexant que foi tirado de linha. O driver russo tweakado está em http://www.iuvcr.com/drv/index.shtml. Este eu não testei ainda.
Pros e cons
Depois de instalar o driver argentino, algumas funções do chip BT878 passam a funcionar, como a correção de gamma (deveria funcionar, mas não funcionou no meu caso. Eventualmente ele funciona se a gravação for feita em RGB e não em YUY2) e o “afiamento” da imagem (sharpening). Outra vantagem do driver argentino é que os programas demonstrativos de gravação de vídeo da Microsoft passam a funcionar corretamente. O driver original da Prolink/Conexant tem uma série de bugs que impedem sua utilização, como dificuldades de sintonia de canais.
A desvantagem de usar o driver argentino:
- Perde-se o rádio FM pelo programa PixelView Station FM, o programa original da Prolink. Remédios:
- Sintonizar-se rádio pelas opções do driver, escolhendo Radio FM no lugar de TV, em programas como o AMcap, demostrativo de captura de vídeo da Microsoft. Mas é impensável e aborrecido ficar descobrindo e setando as estações à mão. Como a programação de FM é uma droga, mesmo, a gente não perde muito.
- Colocar os plugins do Winamp para isso. A melhor opção.
- Usar o programa GRadio para Linux. Melhor opção para Linux.
- Perde-se o controle remoto no PixelView Station TV. Remédio: usar o programa RemoteControl.
tvtime
Pra quem tem um micro lento, uma das melhores opções de programa para ver TV na placa PlayTV pro é o tvtime, open source para Linux. Não chega a me surpreender que o Linux seja melhor que o Windows para isto. O caminho é este.
Este programa já está na versão 0.9.15 (2004). Ele tem grandes chances de se tornar o núcleo do sistema brasileiro de TV digital (SBTVD), porque todos os caminhos apontam para uma televisão baseada em FOSS, e o tvtime é o mais evoluído. É bem acabado, bonito, com uma interface de menus simples e bem feita.
Para ler o manual do tvtime, você digita man:tvtime no campo endereço do Konkeror (Linux). Também vão ajudar leituras dos helps do tvtime-command e tvtime.xml, que mostram os diversos comandos e a estrutura do arquivo de configuração do programa. Este último arquivo de configuração pode ser modificado globalmente em /etc/tvtime/tvtime.xml ou modificado para cada usuário em ~/.tvtime/tvtime.xml. Modificações neste último local se sobrepõem às modificações globais. O arquivo tvtime.xml é muito bem documentado em inglês, facilitando os ajustes.
O tvtime também pode ser controlado pela linha de comando. Por exemplo, você pode colocar a seguinte linha num ícone do desktop:
tvtime -m --inputwidth=320 --geometry=0x486
Com isto, a TV é mostrada em tela inteira (-m) e a quantidade de amostragem de linhas é definida em 320 pontos. A altura em pixels da imagem, quando rodando em janela, é definida para 486, e a largura é automaticamente calculada. Quando em tela inteira, o tamanho é o máximo da resolução. No meu caso, 1024×768 pixels. No entanto, esses 1024 pixels de largura não significam necessariamente que a amostragem da linha analógica da TV será feita em 1024 pontos. Isto pode ser controlado pelo parâmetro “–inputwidth=320”. No exemplo, serão feitas 320 amostragens na linha da TV. O desenvolvedor do tvtime recomenda uma amostragem de 400 pixels por linha de vídeo, o que resulta em poucas perdas de frames em um computador K6-2 500MHz. Combinado com o “Deinterlace bottom field”, tem o melhor custo/benefício em termos de qualidade/velocidade de rendering.
Achei surpreendente que, rodando em tela inteira, praticamente não se nota a mudança de resampling horizontal de 720 para 320. O olho humano não nota muito a diferença. É isto que ocorre também na gravação de TV com VCR, quando as linhas horizontais têm uma amostragem de cerca de 240 pontos. Como a imagem continua com 486 linhas, a gente não nota muita perda.
O único efeito coleteral da diminuição da amostragem horizontal foi que o texto apresentado pelo tvtime ficou com resolução menor, aparecendo mais serrilhado, pixelizado. Mas quem se importa?
Cinema em casa
A melhor configuração de desentrelaçamento (tecla “T”) é a “Blur:Temporal”, que dá uma borradinha entre os frames. A gente perde em nitidez mas ganha em estabilidade da imagem. Não aparecem mais as linhas serrilhadas resultantes do desentraleçamento dos dois campos da TV. Quando mostrei para a minha mulher a imagem da placa recém-instalada rodando em Linux, ela exclamou:
— Parece cinema!
Sim, parece cinema, ou um DVD visto em computador por alguém levemente míope. Ou seja: uma imagem *muito boa*, considerando-se a sofrível qualidade da TV analógica (no Brasil, 525 linhas de sinais, 486 linhas de imagem). Meu monitor velho puxava o matiz da imagem mais para o verde-vermelho, enquanto a TV normal puxa para o azul. Isto é estranho no início, mas os tons quentes reforçam a sensação de cinema. Mas isto é problema do monitor. Meu monitor novo, Samsung SyncMaster 795MB, apresenta a imagem muito melhor que minha velha TV. Os tons de azul parecem corretos.
Para configurar o video4linux, depois de muita tentativa e erro, descobri que a setagem é:
- Placa 37 (Pixelview PlayTV Pro) ou 70.
- Sintonizador 2 (Philips NTSC FM1236).
Essas mesmas configurações são usadas no DScaler, para Windows, que usa a mesma informação do driver bttv do Linux. No tvtime, a configuração é sistema PAL-M, US-broadcast para os canais por antena e US-cable para canais por cabo.
Comandos
A nova versão do tvtime não tem tantas teclas de controle como em versões anteriores, mas é possível se editar o arquivo tvtime.xml e recolocar as teclas desabilitadas por default. Foi o que fiz.
A tecla “=” determina o tipo de desentrelaçamento. Na freqüência total, 59,94fps, se tem a melhor qualidade de imagem, mas num computador lento se perdem alguns quadro, deixando a imagem com alguns pulos. O desentrelaçamento dos campos de baixo (bottom field deinterlace) é o melhor modo para equilibrar velocidade e qualidade de imagem.
A tecla “T” modifica o tipo de tratamento feito na imagem. O melhor resultado é obtido com Blur: temporal. A imagem fica meio desfocada, mas nem se nota. O resultado é excelente tanto em filmes quanto em vídeo.
Infelizmente, as versões mais novas do tvtime não vem mais com a correção de gama, o que deixa as imagens um pouco escuras. A argumentação dos desenvolvedores para isto é que o código não era bom, muito lento. Uma pena.
Bibliografia
- Documentação da placa Prolink PlayTV Pro. Arquivo texto geralmente em C:\Arquivos de programas\Prolink\PlayTV Pro\TROUBLE.TXT.
- Documentação do DScaler.
- Documentação do tvtime (Na linha de endereços do Konkeror, digite man://tvtime.
- Television Standards – formats and techniques. http://www.paradiso-design.net/videostandards_en.html
- BT878 Datasheets. Site web em http://personales.ya.com/domenechorg/. Acesso em 03 fev. 2006.
Ola, José Antonio!!!!
Hoje consegui resolver o meu problema com o controle remoto na maior sorte.
Meu sensor de infra vermelho ( 800GT ) veio em caicho igual a uma meduza….
Eu estava concetando apenas o conctor de audio in.(conector azul) quando que também devia conectar o conector PS2 de S VHS. Mas que coisa né um conector de S VHS interferia no funcionamento de um controle remoto.rsrs só a Pixel View mesmo!!!!
Muito obrigado pelas suas dicas do site!!!!
Se alguém aparecer com essa duvida já esta aew a resposta.
Tenha uma ótima semanaforte abraço, fique na Paz!!!!
Olá, Rafael!
Parece mais defeito do equipamento. Peça para trocar no local de venda. Eventualmente, o infravermelho pode queimar, se conectado com o computador ligado.
Boa tarde, eu tenho uma placa PLAYTV MPEG 8000GT e o controle remoto não funciona.
O led da meu driver de Cd pisca toda vez que aperto um botão do contro, mas o controle não efetua nenhum dos comando ordenado.
Já instalei o Driver que veio junto a placa de capitura, conectei o receptor e não achei nenhuma solução.
Será que terei que instalar algum driver diferente????
Olá, Carlinhos!
Aparentemente, o problema é apenas configuração de software pelo Windows ou pelo gravador. Tente configurar a entrada de áudio pelo programa de captura. Em geral, a entrada é “Entrada” ou “Auxiliar”. Teste as duas entradas.
ola! tenho uma placa de tv/fm encore, isntalada tudo certo no windows vista, quando assisto ao video tudo ok, imagens e sons, mas quando eu gravo fica sem o audio, oque sera? Ob: cabos de audio ligados na placa de tv, cabo da placa de audio ligado no in da placa de audio do pc
se puderem me dar uma dica!