¿Cómo hago una foto oculta con mi cámara iSight desde la línea de comandos?

27

¿Existe una utilidad de línea de comandos que me permita tomar una foto de la cámara incorporada? Algo como captura de pantalla permite, bueno, capturas de pantalla.

El razonamiento para una herramienta de línea de comando es que me gustaría que fuera sigilosa, sin una cuenta regresiva o flash u otra indicación para el usuario de que se está tomando una foto.

dacracot
fuente
1
Eche un vistazo al código fuente de preyproject.com : hacen estas cosas con su aplicación y el código es de código abierto.
Ian C.
3
Recuerde que el LED verde al lado del iSight se activará brevemente cuando la cámara grabe la imagen.
da4

Respuestas:

31

Usa imagesnap . Se puede instalar con brew install imagesnapo descargando el binario desde el sitio web.

Un uso para esto es tomar una serie de instantáneas:

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

Tampoco recorta imágenes horizontalmente. (Photo Booth cambia la relación de aspecto a 3: 2).

Lri
fuente
55
También tenga en cuenta que imagesnaptiene una -tbandera para tomar una foto cada x.xxsegundo. Para que el ciclo while pueda ser reemplazado con imagesnap -t 1; sin embargo, en este caso, imagesnapgenerará su propio nombre de archivo (por ejemplo snapshot-00000-2015-07-23_10-36-52.853.jpg).
tbekolay
si planea usarlo a imagesnaptravés de ssh, necesitará privilegios de sudo. Lo uso para controlar a mis gatos.
Ritwik Bose
7

OS X no viene con ninguna utilidad para este propósito.

Una solución de terceros es imagesnap . Le permite capturar una imagen desde cualquier dispositivo de video conectado, por defecto a la cámara iSight incorporada. Está disponible como un único archivo binario que puede combinar con su software y se lanza al dominio público.

Hay muchas referencias en Internet a la utilidad iSightCapture , que solía ser una opción popular para esto, pero ya no se mantiene.

Jeremy Banks
fuente
¿Algo nativo?
dacracot
@dacracot Lamentablemente, Apple no ha proporcionado nada como esto.
Jeremy Banks
6

Desafortunadamente, imagesnapya no parece funcionar en OSX10.11 / El Capitan, por lo que otra alternativa es instalar ffmpeg (MacPorts: port install ffmpego brew install ffmpeg) y ejecutar:

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

Nativamente, hay una manera pero es extremadamente básica. Puede usar Automator para hacer una aplicación que tome una foto. La acción se llama "Tomar instantánea de video" y requiere una "cámara incorporada, iSight u otra cámara web o cámara digital conectada a su computadora". Simplemente marque la casilla take picture automaticallyy ahora tiene una aplicación a la que puede llamar desde la línea de comandos. Guárdelo como una aplicación y luego puede llamarlo desde la línea de comandos como open TakePicture.app.

Tomar video instantánea

Styfle
fuente
Intenté esto y funcionó, pero esperaba algo más sigiloso.
dacracot
@dacracot me lo imaginé. Como dije, esta es la única forma nativa que conozco, por lo que tendrás que ir por el camino difícil si quieres sigilo.
styfle
5

Como otro póster mencionado, hay una utilidad llamada iSightCapture que puede hacer esto.

Una vez escribí una secuencia de comandos para tomar periódicamente una imagen de iSight y una de mis dos monitores y publicarla en un sitio web privado para poder ver lo que sucede en mi computadora. Así es como escribí la secuencia de comandos de iSightCapture para hacerlo.

#!/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

Tenga en cuenta el uso de 'sorbos' para voltear la captura horizontalmente.

Un enlace de descarga que funciona (2012-10-05): iSightCapture ( vía ), probado en OSX 10.8.2

jmhindle
fuente