Capturando vídeo através do mencoder

Este artigo se propõe a explicar, de forma simples e objetiva, como capturar vídeos de VHS, TV ou qualquer outro dispositivo acoplado à sua placa de captura de vídeo, utilizando o mencoder.

[ Hits: 52.084 ]

Por: andre uebe em 21/07/2006


Entendendo a linha de comando do mencoder



Agora vamos aos detalhes (destrinchar o frango), em:

$ mencoder tv:// -tv driver=v4l2:input=1:normid=4:width=352:height=240 -ovc divx4 -oac mp3lame -ofps 23.976 -endpos 00:30:00.0 -of avi -o motivacao_sucesso.avi

Temos:

mencoder
Comando de chamada do mencoder a ser digitado na linha de comando.

tv:// -tv
Habilita o módulo de captura de tv do mencoder.

driver=
v412 é o driver utilizado. Existe uma versão mais antiga que é o v41. Como a v412 é a mais nova, sugiro utilizá-la.

input=
Informa qual a entrada de captura esta sendo utilizada. Uma boa placa (como é o caso da que sugeri) possui todas as opções listadas abaixo:
  • 0 = Television (quando o sinal vem de uma antena de TV comum, ligada a placa - A placa sugerida bem como uma antena para você assistir/capturar TV aberta direto no micro);
  • 1 = Composite1 (quando o sinal vem de um cabo RCA - nosso caso);
  • 2 = Composite2 (outra opção de entrada quando o sinal vem de um cabo RCA);
  • 3 = S-Video (É um novo tipo de cabo, uma nova tecnologia muito presente nos novos aparelhos eletrônicos).

normid=
Informa o padrão de vídeo:
  • 0 = PAL;
  • 1 = NTSC;
  • 2 = SECAM;
  • 3 = PAL-Nc;
  • 4 = PAL-M (utilizado, em geral, nos VHS produzidos no Brasil - nosso caso);
  • 5 = PAL-N;
  • 6 = NTSC-JP;
  • 7 = PAL-60.

Se não souber qual é o seu, vá testando (tem 7 chances), quando for o certo, a imagem vai aparecer perfeita - colorida, sem borrões, etc).

width=  :height=
É o tamanho do vídeo a ser gravado. Em geral usa-se:
  • -640x480 (DVD);
  • -352x240 (VHS/VCD,etc).

Como a imagem vem de uma VHS (que por natureza tem baixa qualidade) e o 640x480 ocupa mais espaço, optei por 352x240.

-ovc
Refere-se ao codec a ser utilizado para gerar o vídeo. Podem ser:
  • copy (não usa codec, só copia);
  • divx4 (avi compactado - nosso caso);
  • raw (um formato de compactação);
  • lavc (um formato de compactação).

-oac
Refere-se ao codec a ser utilizado para gerar o áudio. Podem ser:
  • copy (não usa codec, só copia);
  • pcm (não compacta);
  • mp3lamer (compacta para mp3 - nosso caso);
  • lavc (um formato de compactação).

-ofps
Determina o fps (frame por segundo). Em geral, utiliza-se uma das opções abaixo:
  • 23.976 (nosso caso);
  • 29.97;
  • 25.00.

-endpos
Determina o tempo de duração da gravação: HH:MM:SS.MS
  • HH - Hora
  • MM - Minuto
  • SS - Segundo
  • MS - Milisegundo

-of
Determina o formato do arquivo a ser gerado, tendo-se:
  • avi (podendo ser compactado ou descompactado - nosso caso)
  • mpeg (para mpeg e VCD)
  • lavf (um formato de compactação)
  • rawvideo (grava somente o vídeo)
  • rawaudio (grava somente o áudio)

-o
Permite definir o nome do arquivo.

Assim, genericamente, teremos:

mencoder tv:// -tv driver=v4l2:input=<1,2,3,5,6 ou 7> :normid= <1,2,3 ou 4>:width=<352 ou 680>:height=<240 ou 480> -ovc <copy, divx4, raw ou lavc>, -oac <copy, mp3lame, pcm ou lavc> -ofps <23.976, 25 ou 29.97> -endpos <HH:MM:SS.MS> -of <avi,mpeg,lavf,rawvideo ou rawaudio> -o <nome do arquivo>

Que no nosso exemplo, ficou:

$ mencoder tv:// -tv driver=v4l2:input=1:normid=4:width=352:height=240 -ovc divx4 -oac mp3lame -ofps 23.976 -endpos 00:00:10.0 -of avi -o motivacao_sucesso.avi

Um abraço a todos!

Página anterior    

Páginas do artigo
   1. Introdução
   2. O mencoder
   3. Como fazer
   4. Entendendo a linha de comando do mencoder
Outros artigos deste autor

Hippo Viewer: Cliente para acesso a mundos virtuais

Fontes personalizadas no GNU/Linux

Configurando Bluetooth no XUbuntu

Agendando tarefa de gravação de vídeo com o mencoder e gnome-schedule

Instalando e utilizando o Web Crawler OpenWebSpider

Leitura recomendada

Modificando a remasterização com Molecule - Sabayon completo, com KDE e GNOME

Instalando programas no Linux - Completo e total

Crie seu próprio repositório YUM no CentOS 4 e 5

Linux, a pirataria de software e a desvalorização do desenvolvedor (parte 2)

Criando um LiveCD do FreeBSD

  
Comentários
[1] Comentário enviado por marcolinux em 21/07/2006 - 09:40h

Legal o artigo. Mas tenho uma dúvida. Poderia enviar através de HTTP ao invés de mandar para arquivo?

MARCOLINUX

[2] Comentário enviado por edivaldobrito em 21/07/2006 - 12:01h

tem como fazer essa mesma capturar a partir de uma webcam usb?

[3] Comentário enviado por fernandofei em 21/07/2006 - 12:53h

cara, mesmo capturando de vhs, o ideal é pegar a imagem a 640*480, quanto mais qualidade, melhor, mas isso não vem ao caso, o que importa é que a dica é muito boa hehehe... parabens

[4] Comentário enviado por _m4n14c_ em 21/07/2006 - 17:47h

Para a duvida do marcolinux, tem um artigo do cabelo abordando o assunto em http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2699&pagina=1 . Nesse caso ele usa o programa ffserver, mas a interface eh o v4l ou o v4l2 (se funcionar com o mencoder vai funcionar com o ffmpeg).

Sobre a pergunta do edivaldo, a webcam eh tratada pelo v4l tambem, entao funciona com webcam.

[5] Comentário enviado por mpinho em 22/07/2006 - 16:06h

As placas de TV que usam chipset Philips também funcionam muito bem no linux e são baratas também. Eu tenho uma.

[6] Comentário enviado por belletti em 23/07/2006 - 14:54h

Amigos, aproveitando a deixa, estou me iniciando no universo LINUX e ainda estou escolhendo a melhor distro para a edição de videos, pois sou videomaker e documentarista. O que vocês me recomendam? Ja utilizei Kurumim e atualmente estou no KUBUNTU Drapper. Caso alguem queira me recomendar DEBIAN, SUSE, enfim, estou apto a aprender a melhor forma de poder editar meus videos com qualidade o LINUX. Obrigado a todos!

[7] Comentário enviado por andreuebe em 26/08/2006 - 11:21h

Atualizei o mencoder e, após isto, tive que alterar alguns parâmetros do script que chama o modulo de captura do mencoder (conforme descrito no Capitulo 3 - Como Fazer, deste artigo).

Na versão original, tem-se:

mencoder tv:// -tv driver=v4l2:input=1:normid=4:width=352:height=240 -ovc divx4 -oac mp3lame -ofps 23.976 -endpos 00:30:00.0 -of avi -o motivacao_sucesso.avi

A nova maneira é:

mencoder tv:// -tv driver=v4l2:input=1:normid=4:vbitrate=900:scale=352:240 -ovc divx4 -oac mp3lame -ofps 23.976 -endpos 00:30:00.0 -of avi -o motivacao_sucesso.avi

Ou seja, em vez de:

width=352:height=240

Deve-se digitar:

scale=352:240

Outro detalhe é que -tv passa a não ser mais utilizado para este caso.

Obs.: acrescentei a opção vbitrate para que possamos ter a opção de definir o bitrate. Quanto maior o valor do bitrate, melhor a qualidade da imagem e maior o tamanho do arquivo.


Aproveito e deixo uma dica de escala:

- Para VCD:
scale=352:240
vbitrate=1200 (ou superior)


- Para avi (divx)
scale=384:288
vbitrate=900 (é suficiente)

Um abraço a todos

Andre

[8] Comentário enviado por andreuebe em 27/08/2006 - 22:52h

Se estiver gravando e o video gravado estiver sem audio, experimentoe desligar a opção Saída -> PCM no Kmix, ao gravar, ligando-a novamente, ao reproduzir o video.

[9] Comentário enviado por andreuebe em 27/08/2006 - 23:01h

Conforme meus ultimos testes, uma sugestão para o mencoder:

mencoder tv:// -tv driver=v4l2:input=1:normid=4:width=384:height=288 -lavcopts vbitrate=900 -endpos 00:00:05 -ovc divx4 -oac mp3lame -o <path e nome do arquivo>

Não se esqueçam de desligar a opção Saída -> PCM no Kmix, ao gravar, ligando-a novamente, ao reproduzir o video.

Um abraço

[10] Comentário enviado por botinha em 13/09/2006 - 22:47h

Artigo de excelente qualidade. Consegui capturar video sem problemas, porém o som eu não consigo capturar. Uso gnome e quando vou gravar dou o comando alsamixer e deixo mute o PCM para gravar e retiro quando vou ouvir porém não consigo êxito. Peço algum amigo se possível dar uma dica, coloquei a entrada do áudio no microfone.

Valeu..

[11] Comentário enviado por andreuebe em 23/09/2006 - 18:26h

No Mixer (Kmix no KDE).

Tente selecionando a opção "Mix" ou "Mix Mono" em vez de "Line" ou "Aux". Tenha certeza que a opção "capture" esteja clicada.

[12] Comentário enviado por andreuebe em 04/10/2006 - 16:22h

botinha

Os kurumin acima de 6.o estão com problema de captura de audio. Nao sei se este é o seu caso mas se estiver usando o Kurumin, tente bootar com o 5 e testar.

Abs

Andre

[13] Comentário enviado por luke Duke em 08/10/2006 - 17:46h

Eu estou usando o ubuntu 6 com uma placa PixelView PlayTv pro Ultra, e todos esses comandos não deram certo, sempre resulta em erro.

alex@chacal:~$ mencoder tv:// -tv driver=v4l2:input=1:normid=4:vbitrate=900:scale=352:240 -ovc divx4 -oac mp3lame -ofps 23.976 -endpos 00:30:00.0 -of avi -o motivacao_sucesso.avi
MEncoder 2:0.99+1.0pre7try2+cvs20060117-0ubuntu8 (C) 2000-2006 MPlayer Team
CPU: Advanced Micro Devices Sempron/Athlon MP/XP/XP-M Barton,Thorton (Family: 6, Stepping: 0)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled with runtime CPU detection.
91 audio & 204 video codecs
Option tv: Unknown suboption vbitrate

Exiting... (error parsing cmdline)

Alguém tem idéia de como resolver?

[14] Comentário enviado por andreuebe em 09/12/2006 - 10:46h

Uma outra opção para quem quer um video final com XVid (Divx) e MP3 é substituir

-ovc divx4 -divx4opts q=3:br=1024:pass=1 -vf scale=384:288 -ofps 29.97

por

-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1024 -ofps 29.97

Esta ultima opção costuma funcionar com mais frequencia que a anterior.

Neste ultimo caso, "-ovc lavc -lavcopts vcodec=mpeg4 " equivale a "-ovc divx4 -divx4opts "

Abs

Andre

[15] Comentário enviado por andreuebe em 09/12/2006 - 10:47h

Botinha

Seguinte configuraçao no Kmix:

Saida -> PCM Ligado

Entrada -> Capture ligado (bola vermelha acesa) no máximo

Alternadores -> Escolha Mix

Repare que ao Escolher Mix, a Entrada de Line e Aux são desativadas. Escolhi o Mix pois, neste, o som é capturado mais alto que nas entradas normais.

Se o som estiver "sibilando", experimente baixar o volume de gravação em -lavcopts (veja os parametros que coloquei para o Luke Duke, abaixo)

Abs

Andre




Abs

Andre

[16] Comentário enviado por andreuebe em 09/12/2006 - 11:18h

Luke Duke

Tente estes outros parâmetros:

mencoder tv:// -tv driver=v4l2:input=1:normid=4:width=384:height=288 -ovc lavc -ofps 29.97 -lavcopts vcodec=mpeg4:vbitrate=900 -oac mp3lame -lameopts q=5:vbr=2:abr=160:aq=5:ratio=50:mode=0:vol=4.5 -endpos 00:00:05.0 -of avi -o teste.avi

Se o som estiver "sibilando", experimente baixar o volume de gravação em -lavcopts. O do meu ficou bom com vol=4.5


[17] Comentário enviado por zereis em 24/12/2007 - 10:53h

André Uebe,

Achei este comando em um site. Pelo que entendi, grava e mostra o vídeo ao mesmo tempo. Testei, mas não consegui fazê-lo funcionar. Acho que a impossibilidade de se ver o que se está gravando a grande restrição o mencoder. Se resolver isto...

To record a show using mencoder you could use this:

mencoder tv:// -tv driver=v4l2:norm=PAL:fps=25:outfmt=yuy2:quality=0:input=0:width=720:height=578:chanlist=europe-west:volume=80:amode=1:normid=0:audiorate=32000:adevice=/dev/sound/dsp2:channel=SE13 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500:keyint=25 \
-oac mp3lame -lameopts cbr:br=128:mode=0 \
-endpos 01:00:00 \
-vf pp=hb/vb/dr/al/lb,denoise3d \
-o videocap.avi

[18] Comentário enviado por andreuebe em 24/12/2007 - 17:53h

Zereis

A principio este comando do mencoder só captura. Realmente, só ví usos do mencoder para captura e conversão. Tanto que para visualização, tem-se o mplayer (do mesmo pacote).

O que se pode tentar é usar um "|" (pipe).

Não sei se dá certo mas algo do tipo

mencoder (...) | mplayer

Sei lá. rs

[19] Comentário enviado por andreuebe em 19/07/2008 - 16:55h

Outra opção:

mencoder tv:// -tv driver=v4l2:input=1:normid=4:width=384:height=288 -lavcopts vbitrate=900 -endpos 00:00:05 -ovc lavc -lavcopts=mpeg4 -oac mp3lame -o teste.avi

[20] Comentário enviado por andreuebe em 12/10/2008 - 11:11h

PADRÃO DE CORES
--------- -- --------

Se as cores do video gravados estão irregulares ou o vídeo está em "preto e branco", altere, em "driver=v4l2:input=1:normid=4(...)" a opção:

normid=4

para

normid=1

alterando de PAL-M para NTSC

as opções possíveis para NORMID são:

0 - PAL
1 - NTSC (padrão EUA)
2 - NTSC2
3 - SECAM
4 - PAL-Mc
5 - PAL-M (padrão Brasil)
6 - PAL-N
7 - NTSC-JP7
8 - PAL-60

Abs

Andre

[21] Comentário enviado por ic0158040 em 11/02/2009 - 19:08h

tentei gravar imagem da minha placa de captura. tenho a pixelview mepeg 2. estou tentando montar um script. olhe aí o que está no script:

mencoder tv:// -tv driver=v4l2:input=0 :normid=4:width=680:height=480 -ovc divx4 -oac mp3lame -ofps 25 -endpos 00:00:30.00 -of avi -o teste.avi

e olhe o erro do shell:

MEncoder dev-SVN-r27834-4.2.3 (C) 2000-2008 MPlayer Team
CPU: AMD Sempron(tm) Processor 3100+ (Family: 15, Model: 12, Stepping: 0)
3DNow supported but disabled
3DNowExt supported but disabled
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compilado para CPU x86 com extenções: MMX MMX2 SSE SSE2

Error parsing option on the command line: -ovc

Saindo... (error parsing command line)
./gravarTv.sh: line 7: divx4: comando não encontrado
./gravarTv.sh: line 8: motivacao_sucesso.avi: comando não encontrado

onde eu estou errando?

grato.

[22] Comentário enviado por andreuebe em 13/02/2009 - 20:10h

dsbonafe

Quanto ao erro:

./gravarTv.sh: line 7: divx4: comando não encontrado

Substitua o codec

- ovc divx

para usar o divx3:

- ovc msmpeg4

Quanto ao erro:

./gravarTv.sh: line 8: motivacao_sucesso.avi: comando não encontrado

Deve ser alguma coisa errada que você digitou em -o. Veja que no comando do mencoder há:

-o teste.avi

e o erro fala de um video chamado motivacao_sucesso. Você postou o script certo?

Aguardo.

Abs

Andre

[23] Comentário enviado por andreuebe em 25/09/2012 - 16:01h

Caros

Atualmente utilizando a Claro TV (Antiga TV Embratel), com o Ubuntu 12.04, fiz uso da seguinte configuração do mencoder:

mencoder tv:// -tv driver=v4l2:alsa:input=1:normid=1:norm=NTSC:width=720:height=576 -ovc xvid -xvidencopts bitrate=658:pass=2 -fps 29.97 -oac mp3lame -lameopts cbr:br=96 -endpos 0:00:25.0 -of avi -o teste.avi

O que mudou?
----------------------

1) Inclui o codec de audio "alsa" como padrão (pois senão ele pega o OSS e dá o erro:
Unable to open '/dev/dsp': No such file or directory

2) Passei o receptor da TV para NTSC e indiquei este formato em "norm"
No receptor da Claro TV: Ajustes --> Opções --> Sistema de Cor = NTSC

3) Diminui o volume do receptor de TV (no controle remoto) e na captura para evitar o som ficar sibilando.
-lameopts vol=0.1

Obs.: Se o som estiver sibilando, v'a baixando o volume do receptor de TV at'e ficar bom. O meu funciona bem entre 2% a 5% do volume total


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts