¿Cómo tomo una imagen de fondo con mi cámara iSight desde la línea de comandos?

26

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

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

    
pregunta dacracot 22.07.2011 - 00:38

5 respuestas

30

Utilice imagesnap . Se puede instalar con brew install imagesnap o descargando el binario del 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 las imágenes horizontalmente. (Photo Booth cambia la relación de aspecto a 3: 2.)

    
respondido por el user495470 08.02.2012 - 03:12
6

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, de manera predeterminada a la cámara iSight incorporada. Está disponible como un único archivo binario que podría empaquetar 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.

    
respondido por el user 22.07.2011 - 00:42
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 una cámara digital conectada a su computadora". Simplemente marque la casilla para take picture automatically y 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 .

    
respondido por el styfle 21.08.2011 - 03:13
5

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

Una vez escribí un guión para capturar periódicamente una imagen de iSight y agarrar mis dos monitores y publicarlo en un sitio web privado para poder ver lo que sucede en mi computadora. Así es como escribí 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 'sips' para voltear la captura isight horizontalmente.

Un enlace de descarga en funcionamiento (2012-10-05): iSightCapture ( a través de ), probado en OSX 10.8.2

    
respondido por el jmhindle 24.08.2011 - 21:38
5

Lamentablemente, imagesnap ya no funciona en OSX10.11 / El Capitan, por lo que otra alternativa es instalar ffmpeg (MacPorts: port install ffmpeg o brew install ffmpeg ) y ejecutar:

ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i "0" -vframes 1 out.jpg
    
respondido por el Pierz 30.01.2017 - 20:24

Lea otras preguntas en las etiquetas