Salvar stream de video da USB para o HD

Iniciado por clahrion, 30 de Agosto de 2012, 10:49

tópico anterior - próximo tópico

clahrion

Olá a todos,

Tenho enfrentado uma batalha para salvar corretamente no HD um sinal de vídeo vindo da USB. Eu comprei uma placa conversora de sinal analógico de video, que se chama WinTV-HVR-950Q. Ela consegue capturar sinal de qualquer saída RCA (pode ser da TV, de uma câmera de vídeo etc) e, plugada na USB, transfere esse sinal para o computador.

A instalação do firmware da placa WinTV-HVR-950Q é bem simples, basta copiar o arquivo "dvb-fe-xc5000-1.6.114.fw" para a pasta "/lib/firmware", que funciona.

Depois precisei instalar o V4L2, para que a captura do sinal de vídeo pela USB pudesse funcionar. O software mais leve e eficiente que encontrei para isso foi o teste de captura "QT V4L2 test Utility" que vem junto com o V4L2, mas o problema começa quando ele não consegue gravar no HD o sinal de vídeo que está capturando.

Depois de muita pesquisa, vi que o VLC seria um software indicado para gravar o sinal de vídeo capturado pela placa WinTV. Primeiro, consegui formatar o comando que o VLC mostrasse na tela o sinal capturado:

$ vlc v4l2:///dev/video1:normal=pal:width=720:height=576:input=1:input-slave="alsa//hw:1,0"

No VLC, se habilitarmos o "Advanced Controls" no menu "View", ele aparece mais botões de controle acima dos normais, onde existe um específico de "Rec". Com um click, o VLC grava na pasta "/home/Videos" qualquer vídeo que ele estiver reproduzindo. Até aí, fantástico, eu tinha o que eu queria, apesar do VLC ser muito lento e causar um atraso de quase 0,5s entre o sinal real de vídeo e o que ele apresenta na tela.

Mas o problema real começou quando se gravava o stream. Primeiro, que eu não conseguia alterar nada nas preferências do VLC, porque pelo menu ele simplesmente não muda o parâmetro que foi alterado, como o formato do arquivo a se salvar, por exemplo para MPEG. Ele continua sempre no formato padrão AVI por mais que se altere as preferências. Eu tentei inserir o novo formato na linha de comando, mas aí ele salva direto o arquivo e não apresenta o vídeo capturado na tela e, para mim, não serve.

Aceitando esse bug das preferências do VLC, eu me deparei com o maior dos problemas, que é no arquivo AVI final gravado. Até uns 3Gb, ele funciona bem, mas se o arquivo crescer mais em tamanho, o VLC quebra o índice da minutagem e o arquivo fica danificado, obrigando-me a usar outros softwares, como o "mencoder", para reconstruir esse índice. É um incômodo que me fez presquisar várias outras opções, mas até agora eu não achei nada que pudesse apresentar em tela o vídeo capturado da USB pelo V4L2 e salvasse ao mesmo tempo um arquivo MPEG, por exemplo, tudo isso com uma performance aceitável.

Alguém tem alguma experiência que possa compartilhar comigo?

Agradeço qualquer colaboração.

Abraços,

Caio Bastos