Как сфотографировать с помощью камеры iSight из командной строки?


27

Есть ли утилита командной строки, которая позволяет мне делать снимки со встроенной камеры? Что-то вроде screencapture позволяет делать снимки экрана.

Я хотел бы, чтобы инструмент командной строки был скрытным, без обратного отсчета, вспышки или других указаний пользователю о том, что делается снимок.


1
Взгляните на исходный код preyproject.com - они делают это со своим приложением, а код для него - с открытым исходным кодом.
Ян С.

3
Помните, что зеленый светодиод рядом с iSight кратковременно активируется, когда камера записывает изображение.
da4

Ответы:


31

Используйте imagesnap . Его можно установить с помощью brew install imagesnapили загрузив двоичный файл с веб-сайта.

Одно из применений - сделать серию снимков:

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

Он также не обрезает изображения по горизонтали. (Photo Booth меняет соотношение сторон на 3: 2.)


5
Также обратите внимание, что imagesnapесть -tфлаг, чтобы сделать снимок каждую x.xxсекунду. Так что цикл while можно заменить на imagesnap -t 1; хотя, в этом случае, imagesnapбудет генерировать свое собственное имя файла (например, snapshot-00000-2015-07-23_10-36-52.853.jpg).
tbekolay

если вы планируете использовать imagesnapчерез ssh, вам понадобятся привилегии sudo. Я использую это, чтобы проверить на моих кошках.
Ритвик Бозе

7

OS X не поставляется с какими-либо утилитами для этой цели.

Сторонним решением является imagesnap . Это позволяет вам захватывать изображение с любого подключенного видеоустройства, по умолчанию встроенной камеры iSight. Он доступен в виде одного двоичного файла, который вы можете связать с вашим программным обеспечением, и распространяется в открытом доступе.

В Интернете много ссылок на утилиту iSightCapture , которая раньше была популярным выбором, но она больше не поддерживается.


Что-нибудь родное?
Дакрак

@dacracot К сожалению, Apple не предоставила ничего подобного.
Джереми Бэнкс

6

К сожалению, imagesnapпохоже, больше не работает на OSX10.11 / El Capitan, поэтому другой альтернативой является установка ffmpeg (MacPorts: port install ffmpegили brew install ffmpeg) и запуск:

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

5

Собственно, есть способ, но он очень простой. Вы можете использовать Automator, чтобы сделать приложение, которое делает снимок. Действие называется «Сделать снимок видео» и требует «встроенной камеры, iSight или другой веб-камеры или цифровой камеры, подключенной к вашему компьютеру». Просто установите флажок, take picture automaticallyи теперь у вас есть приложение, которое вы можете вызвать из командной строки. Сохраните его как приложение, а затем вы можете вызвать его из командной строки, как open TakePicture.app.

Сделать видео снимок


Пробовал это, и это сработало, но я надеялся на что-то более скрытное.
Дакракот

@dacracot Я так и понял. Как я уже сказал, это единственный родной путь, о котором я знаю, поэтому вам придется идти сложным путем, если вы хотите скрытности.
Styfle

5

Как уже упоминалось, есть утилита iSightCapture, которая может это сделать.

Однажды я написал сценарий, чтобы периодически получать изображение iSight и два моих монитора и публиковать их на частном веб-сайте, чтобы я мог видеть, что происходит на моем компьютере. Вот как я написал скрипт iSightCapture для этого.

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

Обратите внимание на использование 'sips', чтобы перевернуть захват isight по горизонтали.

Работающая ссылка для скачивания (2012-10-05): iSightCapture ( через ), протестировано на OSX 10.8.2

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.