Wie mache ich mit meiner iSight-Kamera ein ruhiges Bild über die Befehlszeile?

Gibt es ein Befehlszeilenprogramm, mit dem ich ein Bild von der eingebauten Kamera aufnehmen kann? So etwas wie Screencapture ermöglicht, nun ja, Screenshots.

Der Grund für ein Befehlszeilentool ist, dass ich möchte, dass es verstohlen ist, ohne einen Countdown oder Blitz oder andere Hinweise für den Benutzer, dass ein Bild aufgenommen wird.

Werfen Sie einen Blick auf den Quellcode für preyproject.com – sie machen diese Sachen mit ihrer App und der Code dafür ist Open Source.
Denken Sie daran, dass die grüne LED neben dem iSight kurz aktiviert wird, wenn die Kamera das Bild aufzeichnet.

Antworten (5)

Verwenden Sie Imagesnap . Es kann mit brew install imagesnapoder durch Herunterladen der Binärdatei von der Website installiert werden.

Eine Verwendung dafür besteht darin, eine Reihe von Schnappschüssen aufzunehmen:

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

Es beschneidet Bilder auch nicht horizontal. (Photo Booth ändert das Seitenverhältnis auf 3:2.)

Beachten Sie auch, dass imagesnapes eine -tFlagge gibt, um alle x.xxSekunden ein Bild aufzunehmen. Damit die While-Schleife durch ersetzt werden könnte imagesnap -t 1; generiert in diesem Fall imagesnapjedoch einen eigenen Dateinamen (z . B. snapshot-00000-2015-07-23_10-36-52.853.jpg).
Wenn Sie die Verwendung über ssh planen, imagesnapbenötigen Sie sudo-Berechtigungen. Ich benutze es, um nach meinen Katzen zu sehen.

OS X enthält keine Dienstprogramme für diesen Zweck.

Eine Drittanbieterlösung ist imagesnap . Sie können ein Bild von jedem angeschlossenen Videogerät aufnehmen, standardmäßig mit der integrierten iSight-Kamera. Es ist als einzelne Binärdatei verfügbar, die Sie mit Ihrer Software bündeln können, und ist öffentlich zugänglich.

Es gibt viele Hinweise im Internet auf das Dienstprogramm iSightCapture , das früher eine beliebte Wahl dafür war, aber nicht mehr gepflegt wird.

Irgendwas einheimisches?
@dacracot Leider hat Apple so etwas nicht bereitgestellt.
Was wirklich seltsam ist, ist, dass Automator eine Aktion zum Aufnehmen eines Bildes bereitstellt, aber das iSight nicht als gültige Kamera erkennt!

Leider imagesnapscheint es unter OSX10.11/El Capitan nicht mehr zu funktionieren, daher besteht eine andere Alternative darin, ffmpeg (MacPorts: port install ffmpegoder brew install ffmpeg) zu installieren und auszuführen:

ffmpeg -f avfoundation -video_size 1280x720 -framerate 30 -i "0" -vframes 1 out.jpg
Es scheint jetzt auf Catalina (10.15.6) zu funktionieren, das einzige ist, dass es bei der ersten Ausführung erfordert, dass das Terminal die Erlaubnis erhält, die Kamera zu verwenden

Von Haus aus gibt es einen Weg, aber es ist extrem einfach. Sie können Automator verwenden , um eine Anwendung zu erstellen, die ein Bild aufnimmt. Die Aktion heißt „Video-Schnappschuss machen“ und erfordert eine „eingebaute Kamera, iSight oder andere Webcam oder an Ihren Computer angeschlossene Digitalkamera“. Aktivieren Sie einfach das Kontrollkästchen take picture automaticallyund Sie haben jetzt eine App, die Sie von der Befehlszeile aus aufrufen können. Speichern Sie es als App und dann können Sie es von der Befehlszeile wie aufrufen open TakePicture.app.

Video-Schnappschuss machen

Versuchte dies und es funktionierte, aber ich hatte auf etwas Verstohleneres gehofft.
@dacracot Das habe ich mir gedacht. Wie ich schon sagte, dies ist die einzige native Methode, die ich kenne, also müssen Sie den harten Weg gehen, wenn Sie Stealth wollen.

Wie ein anderes Poster erwähnte, gibt es ein Dienstprogramm namens iSightCapture, das dies tun kann.

Ich habe einmal ein Skript geschrieben, um regelmäßig ein iSight-Bild und ein Bild meiner beiden Monitore aufzunehmen und es auf einer privaten Website zu posten, damit ich sehen konnte, was auf meinem Computer vor sich geht. So habe ich iSightCapture dazu geschrieben.

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

Beachten Sie die Verwendung von „sips“, um die Sichtaufnahme horizontal zu spiegeln.

Ein funktionierender Download-Link (05.10.2012): iSightCapture ( via ), getestet auf OSX 10.8.2