Wie mache ich mit meiner iSight-Kamera von der Kommandozeile aus ein schlechtes Bild?

27

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

Die Argumentation für ein Befehlszeilentool ist, dass es verstohlen sein soll, ohne Countdown oder Blitz oder andere Hinweise für den Benutzer, dass ein Bild aufgenommen wird.

Dacracot
quelle
1
Schauen Sie sich den Quellcode von preyproject.com an - die machen das mit ihrer App und der Code dafür ist Open Source.
Ian C.
3
Denken Sie daran, dass die grüne LED neben dem iSight kurz aktiviert wird, wenn die Kamera das Bild aufzeichnet.
da4

Antworten:

31

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 zu machen:

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

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

Lri
quelle
5
Beachten Sie auch, dass alle Sekunden imagesnapeine -tFlagge zum Aufnehmen eines x.xxFotos vorhanden ist. Damit die while-Schleife durch ersetzt werden kann imagesnap -t 1; In diesem Fall imagesnapwird jedoch ein eigener Dateiname generiert (z snapshot-00000-2015-07-23_10-36-52.853.jpg. B. ).
Tbekolay
Wenn Sie imagesnapüber ssh arbeiten möchten, benötigen Sie sudo-Berechtigungen. Ich benutze es, um meine Katzen einzuchecken.
Ritwik Bose
7

OS X enthält zu diesem Zweck keine Dienstprogramme.

Eine Drittanbieterlösung ist imagesnap . Damit können Sie 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 wird als gemeinfreie Datei veröffentlicht.

Im Internet gibt es viele Verweise auf das Dienstprogramm iSightCapture , das früher eine beliebte Wahl war, aber nicht mehr gepflegt wird.

Jeremy Banks
quelle
Irgendwas Eingeborenes?
Dacracot
@dacracot Leider hat Apple so etwas nicht zur Verfügung gestellt.
Jeremy Banks
6

imagesnapScheint unter OSX10.11 / El Capitan leider nicht mehr zu funktionieren. Eine andere Alternative besteht 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
Pierz
quelle
5

Natürlich gibt es einen Weg, aber er ist extrem einfach. Sie können Automator verwenden , um eine Anwendung zu erstellen, die ein Bild aufnimmt. Die Aktion heißt "Video-Schnappschuss aufnehmen" und erfordert eine "eingebaute Kamera, iSight oder eine andere Webcam oder eine an Ihren Computer angeschlossene Digitalkamera". Aktivieren Sie einfach das Kontrollkästchen, take picture automaticallyund Sie haben jetzt eine App, die Sie über die Befehlszeile aufrufen können. Speichern Sie es als App und rufen Sie es dann über die Kommandozeile wie folgt auf open TakePicture.app.

Video-Schnappschuss aufnehmen

Styfle
quelle
Versuchte dies und es funktionierte, aber ich hoffte auf etwas Verstohleneres.
Dacracot
@dacracot Ich habe es mir gedacht. Wie ich schon sagte, das ist der einzige native Weg, den ich kenne, also musst du den harten Weg gehen, wenn du Stealth willst.
Styfle
5

Wie bereits erwähnt, gibt es ein Hilfsprogramm namens iSightCapture, das dies ermöglicht.

Ich habe einmal ein Skript geschrieben, um in regelmäßigen Abständen ein iSight-Bild und zwei Monitore zu erfassen und auf einer privaten Website zu veröffentlichen, damit ich sehen kann, was auf meinem Computer vor sich geht. Hier ist, wie ich iSightCapture dazu geschrieben habe.

#!/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 das Isight-Capture horizontal zu drehen.

Ein funktionierender Download-Link (2012-10-05): iSightCapture ( über ), getestet unter OSX 10.8.2

jmhindle
quelle