Como tiro uma foto com minha câmera iSight da linha de comando?


27

Existe um utilitário de linha de comando que permita tirar uma foto da câmera embutida? Algo como captura de tela permite, bem, capturas de tela.

O motivo para uma ferramenta de linha de comando é que eu gostaria que ela fosse furtiva, sem contagem regressiva ou flash ou outra indicação ao usuário de que uma foto está sendo tirada.


1
Dê uma olhada no código fonte do preyproject.com - eles fazem essas coisas com o aplicativo e o código é de código aberto.
Ian C.

3
Lembre-se de que o LED verde ao lado do iSight será ativado brevemente quando a câmera gravar a imagem.
DA4

Respostas:


31

Use imagesnap . Pode ser instalado com brew install imagesnapou baixando o binário do site.

Um uso para isso é tirar uma série de instantâneos:

while :; do
    imagesnap ~/Desktop/$(date +%y%m%d%H%M%S).png
    sleep ${1-1}
done

Também não corta imagens horizontalmente. (O Photo Booth altera a proporção para 3: 2.)


5
Observe também que imagesnappossui uma -tbandeira para tirar uma foto a cada x.xxsegundo. Para que o loop while possa ser substituído por imagesnap -t 1; embora, nesse caso, imagesnapgere seu próprio nome de arquivo (por exemplo snapshot-00000-2015-07-23_10-36-52.853.jpg).
tbekolay

se você planeja usar imagesnapvia ssh, precisará de privilégios sudo. Eu o uso para checar meus gatos.
Ritwik Bose

7

O OS X não vem com nenhum utilitário para esse fim.

Uma solução de terceiros é o imagesnap . Ele permite capturar uma imagem de qualquer dispositivo de vídeo conectado, por padrão na câmera iSight embutida. Está disponível como um único arquivo binário que você pode agrupar com o seu software e é liberado para o domínio público.

Existem muitas referências na Internet ao utilitário iSightCapture , que costumava ser uma escolha popular para isso, mas não é mais mantido.


Alguma coisa nativa?
Dacracot 21/07

Infelizmente, a Apple não forneceu nada parecido com isto.
Jeremy Banks

6

Infelizmente, imagesnapparece não funcionar mais no OSX10.11 / El Capitan, portanto, outra alternativa é instalar o ffmpeg (MacPorts: port install ffmpegou brew install ffmpeg) e executar:

ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i "0" -vframes 1 out.jpg

5

Nativamente, existe um caminho, mas é extremamente básico. Você pode usar o Automator para criar um aplicativo que tira uma foto. A ação é chamada "Obter vídeo instantâneo" e requer uma "câmera embutida, iSight ou outra webcam ou câmera digital conectada ao seu computador". Basta marcar a caixa take picture automaticallye agora você tem um aplicativo para o qual você pode ligar na linha de comando. Salve-o como um aplicativo e, em seguida, você pode chamá-lo na linha de comando open TakePicture.app.

Tome um instantâneo de vídeo


Tentei isso e funcionou, mas eu estava esperando algo mais furtivo.
precisa saber é o seguinte

@ Dacracot eu percebi isso. Como eu disse, esta é a única maneira nativa que eu conheço, então você terá que seguir o caminho mais difícil se quiser discrição.
precisa saber é o seguinte

5

Como outro pôster mencionado, existe um utilitário chamado iSightCapture que pode fazer isso.

Certa vez, escrevi um script para capturar periodicamente uma imagem do iSight e de meus dois monitores e publicá-la em um site privado para que eu pudesse ver o que está acontecendo no meu computador. Veja como eu escrevi o iSightCapture para fazer isso.

#!/bin/bash
~/scripts/isightcapture -w 320 -h 240 -t jpg ~/capture.jpg 
RESULT=$?
if [ $RESULT -ne 0 ]; then
    growlnotify -s -a FaceTime -m "isightcapture failed ($RESULT)" $0
    exit 1
else
    sips -f horizontal ~/capture.jpg
fi

screencapture -S -tjpg ~/scr1.jpg ~/scr2.jpg 
RESULT=$?
if [ $RESULT -ne 0 ]; then
    growlnotify -s -a FaceTime -m "screencapture failed ($RESULT)" $0
    exit 2
else 
    sips -z 240 320 ~/scr1.jpg 
    sips -z 240 320 ~/scr2.jpg
fi
exit 0

Observe o uso de 'goles' para inverter a captura horizontal na horizontal.

Um link de download em funcionamento (05/10/2012): iSightCapture ( via ), testado no OSX 10.8.2

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.