¿Existe una utilidad de línea de comandos que me permita tomar una foto desde la cámara integrada? Algo así como la captura de pantalla permite, bueno, capturas de pantalla.
El razonamiento para una herramienta de línea de comandos 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.
Usa imágenes instantáneas . Se puede instalar con brew install imagesnap
o descargando el binario del sitio web.
Uno de sus usos 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).
imagesnap
tiene una -t
bandera para tomar una foto cada x.xx
segundo. Entonces ese ciclo while podría ser reemplazado con imagesnap -t 1
; aunque, en este caso, imagesnap
generará su propio nombre de archivo (por ejemplo, snapshot-00000-2015-07-23_10-36-52.853.jpg
).imagesnap
través de ssh, necesitará privilegios de sudo. Lo uso para controlar a mis gatos.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 incluir con su software y se publica en el 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.
Lamentablemente imagesnap
, parece que 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
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 integrada, iSight u otra cámara web, o una cámara digital conectada a su computadora". Simplemente marque la casilla 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 comando como open TakePicture.app
.
Como mencionó otro cartel, hay una utilidad llamada iSightCapture que puede hacer esto.
Una vez escribí un script para capturar periódicamente una imagen iSight y una captura de mis dos monitores y publicarla en un sitio web privado para poder ver lo que sucede en mi computadora. Así es como programé 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 de iSight horizontalmente.
Un enlace de descarga que funciona (2012-10-05): iSightCapture ( vía ), probado en OSX 10.8.2
ian c
da4