Jak zrobić ostre zdjęcie za pomocą mojej kamery iSight z wiersza poleceń?


27

Czy istnieje narzędzie wiersza polecenia, które pozwala mi zrobić zdjęcie z wbudowanego aparatu? Coś w rodzaju screencapture pozwala na przechwytywanie ekranu.

Powodem, dla którego narzędzie wiersza poleceń jest takie, chciałbym, aby było niewidoczne, bez odliczania, flashowania lub innego wskazania użytkownikowi, że zdjęcie jest robione.


1
Spójrz na kod źródłowy dla preyproject.com - robią to ze swoją aplikacją, a kod jest open source.
Ian C.

3
Pamiętaj, że zielona dioda LED obok iSight uaktywni się na krótko, gdy kamera zarejestruje obraz.
da4

Odpowiedzi:


31

Użyj imagesnap . Można go zainstalować z brew install imagesnaplub pobrać plik binarny ze strony internetowej.

Jednym z zastosowań jest zrobienie serii migawek:

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

Nie przycina też zdjęć w poziomie. (Photo Booth zmienia proporcje obrazu na 3: 2).


5
Pamiętaj też, że imagesnapma -tflagę do robienia zdjęć co x.xxsekundę. Aby pętla while mogła zostać zastąpiona imagesnap -t 1; chociaż w tym przypadku imagesnapwygeneruje własną nazwę pliku (np snapshot-00000-2015-07-23_10-36-52.853.jpg.).
tbekolay

jeśli planujesz używać imagesnapprzez ssh, będziesz potrzebować uprawnień sudo. Używam go do odprawiania moich kotów.
Ritwik Bose

7

OS X nie zawiera żadnych narzędzi do tego celu.

Rozwiązaniem innej firmy jest imagesnap . Umożliwia przechwytywanie obrazu z dowolnego podłączonego urządzenia wideo, domyślnie z wbudowaną kamerą iSight. Jest dostępny jako pojedynczy plik binarny, który można spakować z oprogramowaniem, i jest udostępniany jako domena publiczna.

W Internecie istnieje wiele odniesień do narzędzia iSightCapture , które było popularnym wyborem, ale nie jest już utrzymywane.


Coś natywnego?
dacracot

@dacracot Niestety Apple nie dostarczył czegoś takiego.
Jeremy Banks

6

Niestety imagesnapwydaje się, że nie działa już na OSX10.11 / El Capitan, więc inną alternatywą jest zainstalowanie ffmpeg (MacPorts: port install ffmpeglub brew install ffmpeg) i uruchomienie:

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

5

Natywnie istnieje sposób, ale jest on bardzo prosty. Za pomocą Automatora można utworzyć aplikację, która robi zdjęcie. Działanie nosi nazwę „Wykonaj migawkę wideo” i wymaga „wbudowanej kamery, iSight lub innej kamery internetowej lub aparatu cyfrowego podłączonego do komputera”. Po prostu zaznacz pole wyboru take picture automaticallyi masz teraz aplikację, do której możesz zadzwonić z wiersza poleceń. Zapisz go jako aplikację, a następnie możesz wywołać go z wiersza polecenia, np open TakePicture.app.

Zrób migawkę wideo


Próbowałem tego i zadziałało, ale liczyłem na coś bardziej ukrytego.
dacracot

@dacracot Myślałem tak samo. Jak powiedziałem, jest to jedyny natywny sposób, jaki znam, więc jeśli chcesz ukryć się, musisz wybrać trudną drogę.
styfle

5

Jak wspomniano w innym plakacie, istnieje narzędzie o nazwie iSightCapture, które może to zrobić.

Kiedyś napisałem skrypt, aby okresowo pobierać obraz iSight i chwycić moje dwa monitory i opublikować go na prywatnej stronie internetowej, aby zobaczyć, co się dzieje na moim komputerze. Oto jak napisałem skrypt iSightCapture, aby to zrobić.

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

Zwróć uwagę na użycie „łyków” do odwracania przechwytywania wartości w poziomie.

Działający link do pobrania (2012-10-05): iSightCapture ( via ), przetestowany na OSX 10.8.2

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.