Як я можу сфотографувати свою камеру iSight з командного рядка?


27

Чи є утиліта командного рядка, яка дозволяє мені сфотографуватись із вбудованої камери? Щось подібне до зйомки екрана дозволяє, мабуть, знімати екран.

Міркуючи про інструмент командного рядка, я хотів би, щоб він був непохитним, без зворотного відліку чи спалаху чи іншого вказівки користувачеві, що фотографується.


1
Погляньте на вихідний код для preyproject.com - вони роблять це за допомогою своєї програми та код для нього з відкритим кодом.
Ян C.

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

Відповіді:


31

Використовуйте зображенняnap . Його можна встановити за допомогою 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. Я використовую це для реєстрації своїх котів.
Ritwik Bose

7

Для цього OS X не має жодних утиліт.

Стороннє рішення - це imagenap . Це дозволяє знімати зображення з будь-якого підключеного відеопристрою, дефолт до вбудованої камери 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

Зверніть увагу на використання "ковтків", щоб перевернути знімок із горизонталі.

Працює посилання для завантаження (2012-10-05): iSightCapture ( через ), протестований на OSX 10.8.2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.