segunda-feira, 11 de maio de 2009

Capturando a transmissão da TV com o MEncoder

Existe uma dupla de aplicativos de linha de comando para player multimídia e codificação de vídeos chamada MPlayer e MEncoder, ambos são uma ferramenta extremamente poderosa para reprodução e conversão de vídeo. Neste artigo vou mostrar como é possível capturar a transmissão da TV, através de uma placa de TV, e gerar um arquivo no formato DivX ou DVD. Os exemplos são feitos tendo como base o ambiente Linux com a placa de captura BT878 Prolink PixelView. Dependendo do modelo da placa de captura os parâmetros poderão ser diferentes.

Reproduzir a TV:

Apenas ilustrando, para reproduzir o conteúdo da transmissão da TV, sem gerar um arquivo, utiliza-se o MPlayer. Abaixo segue o exemplo da linha de comando:

mplayer tv://14 -tv driver=v4l2:input=0:normid=9:width=640:height=480:chanlist=us-cable

No comando acima o MPlayer reproduzirá o conteúdo do canal 14, usando o driver V4L2, na entrada de televisão (input=0), no sistema PAL-M (normid=9) e sintonizando pela lista de canais da freqüência de tv a cabo.


Capturar a TV para um arquivo:

Na captura utiliza-se o aplicativo MEncoder. Sua sintaxe difere pois é necessário especificar também qual o codec que será utilizado e bem como a qualidade do arquivo gerado:

Para DivX:

mencoder tv://14 -tv driver=v4l2:input=0:normid=9:width=640:height=480:chanlist=us-cable:alsa:adevice=hw.1,1:amode=1:forceaudio:forcechan=2:audiorate=48000 -o arquivo.avi -ovc lavc -lavcopts vcodec=mpeg4:vhq:vqmax=31:vbitrate=600:keyint=300 -oac mp3lame -lameopts cbr:br=128 -srate 48000 -sws 1 -vf crop=608:456:4:12,pp=lb,scale=520:390 -endpos 60

Para DVD:

mencoder tv://14 -tv driver=v4l2:input=0:normid=9:width=640:height=480:chanlist=us-cable:alsa:adevice=hw.1,1:amode=1:forceaudio:forcechan=2:audiorate=48000 -o arquivo.avi -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=4/3 -ofps 30000/1001 -srate 48000 -af lavcresample=48000 -vf crop=608:456:4:12,pp=lb,scale=720:480 -endpos 60

Nestes dois exemplos foram acrescentados parâmetros no driver V4L2 para a captura do sinal de áudio. O arquivo de saída está especificado no parâmetro -o e o parâmetro -ovc define o codec de vídeo e -oac define o codec de áudio. Em ambos exemplos foi necessário cortar as bordas para eliminar o desalinhamento da imagem em relação a área de captura. E também foi alterado o tamanho da imagem, recomendável pelo menos na geração do arquivo para DVD onde a resolução é padrão. No caso da codificação em DivX tem-se maior liberdade na variação da qualidade do vídeo e do áudio alterando a taxa de bits, para DVD geralmente utiliza-se as taxas padrão. Veja abaixo algumas possibilidades.


Variações de qualidade para DivX:

Diferentes qualidades geram arquivos de tamanhos diferentes, obviamente quanto melhor a taxa maior será o arquivo. Em nossos exemplos a taxa foi definida de modo fixo sendo vídeo em "vbitrate" e a taxa de áudio em "br":

Baixa, 1 minuto ocupa 3.3 MB (2h -> 396mb): vbitrate=350 br=48
Boa, 1 minuto ocupa 7 MB (2h -> 840mb): vbitrate=800 br=128
Alta, 1 minuto ocupa 9.6 MB (2h -> 1152mb): vbitrate=1200 br=128
Ótima, 1 minuto ocupa 14 MB (2h -> 1680mb): vbitrate=1800 keyint=150 br=128
CD, 1 minuto ocupa 5.6 MB (2h -> 672mb): vbitrate=600 br=128


Entrada do áudio:

Existe duas formas de capturar o áudio da TV, uma é pela entrada da placa de som (line-in) e a outra é diretamente pelo hardware da placa de TV.

Line in: adevice=hw.0,0
BT878: adevice=hw.1,1 (requer o módulo snd-bt87x carregado)


Duração da gravação:

Com este parâmetro a gravação encerra-se automaticamente após o tempo determinado.

-endpos 60 (segundos)
-endpos 01:10:00 (hora:minuto:segundo)
-endpos 100mb (tamanho do arquivo)


A aplicabilidade deste software pode ir muito além, como por exemplo um script chamado pelo cron para automatizar a gravação de um programa de TV, como fazíamos em um VCR. Consulte os manuais destes aplicativos para conhecer toda a variedade de parâmetros, que é muito maior do que foi exemplificado neste artigo. Boa gravação!

Nenhum comentário:

Postar um comentário