Usar Webcam No Linux Pelo Terminal

Introdução

Esses dias estava pensando se existia algum modo de usar a webcam de meu notebook pelo terminal. A minha idéia era usar um comando para tirar fotos e até mesmo gravar vídeos pela webcam sem usar um programa gráfico.

Nesse post iremos aprender a usar o programa streamer do pacote xawtv para tirar fotos pela webcam usando a linha de comando.

Configuração da Webcam

Não é objetivo desse post mostrar como configurar a sua webcam no linux, pois isso fugiria um pouco do assunto principal. Então, à partir daqui irei considerar que sua webcam está instalada e configurada corretamente em seu sistema.

O aplicativo streamer

Dos diversos programas [1] usados para tirar fotos usando a webcam pela linha de comando, o streamer foi o que achei mais simples e flexível. Antes de tudo vamos instalá-lo:

$ sudo yum install xawtv

O streamer faz parte do projeto xawtv que surgiu da necessidade de assistir e gravar programas de TV pelo computador. Mais informações em [2].

De acordo com [3], a instalação no Ubuntu é feita assim:

$ sudo apt-get install streamer

Tirando suas primeiras fotos

Tire uma foto usando sua webcam com o comando:

$ streamer -c /dev/video0 -b 16 -o outfile.jpeg

-c /dev/video0 : Identifica o dispositivo associado à sua webcam. Geralmente esse dispositivo é o /dev/video0, como indicado.

-b 16 : O número de cores.

-o outfile.jpeg : Indica o arquivo de saída. Nesse caso, a foto será salva no arquivo outfile.jpeg usando o formato de compressão JPEG. OBS: Use a extensão .jpeg e não a .jpg.

Para mais detalhes: man streamer

Problemas com fotos escuras

Agora abra o arquivo output.jpeg e veja o que a sua webcam capturou. Em alguns casos a foto tirada fica escura e isso ocorre quando ela é tirada antes mesmo da webcam ser “carregada”. Se esse for o seu caso, você terá que tirar fotos durante alguns segundos até obter uma de boa qualidade.

O comando streamer possui uma opção que indica por quanto tempo ele irá tirar as fotos. Veja um exemplo no comando abaixo [4]:

$ mkdir fotos
$ streamer -c /dev/video0 -t 00:00:02 -b 32 -o fotos/output_00.jpeg

Serão tiradas fotos por 2 segundos (opção -t) e em média 10 fotos por segundo. Entre na pasta fotos e você verá em torno de 20 fotos, sendo que (no meu caso) somente as 5 últimas estão nítidas e as restantes escuras.

Outros aplicativos

Podemos ver em [1] que há muitos outros aplicativos de linha de comando que manipulam a webcam. Um deles é o camE que cheguei a fazer alguns testes, porém achei sua configuração um pouco confusa por ter que configurar um servidor FTP ou SSH para receber as fotos tiradas.

Conclusão

Com a ajuda de programas parecidos com o streamer, podemos facilmente integrar a manipulação da webcam em shell scripts ou em outros aplicativos de linha de comando. O stramer fornece uma interface simples e flexível para tirar fotos e gravar vídeos da webcam, podendo ser facilmente integrado em outros programas.

O único problema encontrado foi o tal tempo de “carregamento” da webcam que gira em torno de 2 segundos e que impossibilita o capturamento de fotos e vídeos nesse intervalo. Entretanto vimos que  tirando fotos durante um intervalo maior que 2 segundos podemos obter fotos perfeitamente nítidas.

Referências

[1] Framegrabbing Applications (Acessado em: Novembro/2011)
http://tldp.org/HOWTO/Webcam-HOWTO/framegrabbers.html

[2] Xawtv (Acessado em: Novembro/2011)
http://en.wikipedia.org/wiki/Xawtv

[3] Webcam – Grab an image from the command line (Acessado em: Novembro/2011)
http://ubuntu.online02.com/node/25

[4] dark image captured by streamer (Acessado em: Novembro/2011)
http://ubuntuforums.org/showthread.php?t=1624415

[5] how to record the webcam with command line? (Acessado em: Novembro/2011)
http://ubuntuforums.org/showthread.php?t=1337440

OBS: Visite o link acima para saber como gravar vídeos pela webcam usando o programa streamer.

8 pensamentos sobre “Usar Webcam No Linux Pelo Terminal

    • Olá Airy,

      Não tenho conhecimento se há algo semelhante no Windows. Fiz algumas pesquisas rápidas no google e encontrei esse post:

      CommandCam

      Para testar, baixe o executável na página e execute conforme descrito:

      Iniciar->Executar->cmd.txt
      $ cd “My Documents\Downloads”
      $ CommandCam /filename nome_da_imagem.bmp

      Pelo que sei esse programa só tira fotos e não grava vídeos. Estou sem o Windows aqui no momento para testar esse e outros programas.

      Mais tarde pesquisarei melhor e assim que encontrar o programa ideal, eu posto aqui.

      Abraços.

      • Olá Daemonio,

        Muito obrigado!!! Era exatamente o que eu estava buscando! Uma pena não gravar vídeo, mas acho que isso seria demais…

        Mais uma vez, muito obrigado pela sua ajuda!

        Abraços.

  1. Daemonio,

    eu instalei o Ubunto em uma maquina virtual(VirtualBox) segui os passos por vc citado acima, e ao executar:
    streamer -c /dev/video0 -b 16 -o outfile.jpeg

    obtive o erro abaixo:
    “Could not connect device (/dev/video0)”

    Poderia me ajudar?

    • Olá Edson,

      Olhe se há outro dispositivo associado a sua webcam:

      $ ls /dev/video*

      Se aparecer /dev/video1, por exemplo, é só trocar no parâmetro.

      Se não aparecer nada é porque a webcam não foi detectada pelo kernel e o módulo correto não foi carregado.

      Você consegue executar algum outro aplicativo que utiliza a webcam? (ex: cheese)

      t+

      • Boa noite,
        executei o comando $ ls /dev/video* e deu que não existe, a webcam e integrada ao notbook e um dell inspiron 14.

        executei os comandos
        $ lspci e $lsusb para tentar identificar a webcam e nada.

        instalei o cheese e mesmo assim não consigo acessa-la

      • Ok Edson,

        Encontrei o comando para dar load no módulo:

        $ sudo modprobe uvcvideo

        Depois disso, abra o programa Cheese para ver se a webcam está funcionando.

        Se não der, a gente troca ideia por e-mail.

        t+

  2. Pingback: Como criar vídeos “time lapse” | Monolito Nimbus

Deixe um comentário