ฉันจะถ่ายรูปด้วยกล้อง iSight จากบรรทัดคำสั่งได้อย่างไร


27

มียูทิลิตีบรรทัดคำสั่งที่อนุญาตให้ฉันถ่ายรูปจากกล้องในตัวหรือไม่? บางสิ่งที่เหมือนกับหน้าจอ screencapture ทำให้จับภาพหน้าจอได้ดี

เหตุผลสำหรับเครื่องมือบรรทัดคำสั่งคือฉันต้องการที่จะหลบ ๆ ซ่อน ๆ โดยไม่ต้องนับถอยหลังหรือแฟลชหรือตัวบ่งชี้อื่น ๆ กับผู้ใช้ที่กำลังถ่ายภาพ


1
ลองดูที่ source code ของpreyproject.comพวกเขาทำสิ่งนี้กับแอพของพวกเขาและรหัสสำหรับมันคือโอเพ่นซอร์ส
เอียนซี

3
โปรดจำไว้ว่าไฟ LED สีเขียวถัดจาก 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วินาที ดังนั้นในขณะที่วงสามารถถูกแทนที่ด้วยimagesnap -t 1; แม้ว่าในกรณีนี้imagesnapจะสร้างชื่อไฟล์ของตัวเอง (เช่นsnapshot-00000-2015-07-23_10-36-52.853.jpg)
tbekolay

หากคุณวางแผนที่จะใช้imagesnapผ่าน ssh คุณจะต้องมีสิทธิ์ sudo ฉันใช้มันเพื่อเช็คอินแมวของฉัน
Ritwik Bose

7

OS X ไม่ได้มาพร้อมกับยูทิลิตี้ใด ๆ เพื่อจุดประสงค์นี้

วิธีการแก้ปัญหาของบุคคลที่สามเป็นimagesnap มันช่วยให้คุณสามารถจับภาพจากอุปกรณ์วิดีโอที่เชื่อมต่อใด ๆ เริ่มต้นกับกล้อง iSight ในตัว สามารถใช้เป็นไฟล์ไบนารีไฟล์เดียวที่คุณสามารถรวมเข้ากับซอฟต์แวร์ของคุณและเผยแพร่สู่สาธารณสมบัติ

มีการอ้างอิงจำนวนมากทั่วอินเทอร์เน็ตไปยังยูทิลิตี้iSightCaptureซึ่งเคยเป็นตัวเลือกยอดนิยมสำหรับสิ่งนี้ แต่มันไม่ได้รับการดูแลรักษาอีกต่อไป


มีอะไรพื้นเมือง?
dacracot

@dacracot น่าเสียดายที่ Apple ไม่ได้ให้อะไรแบบนี้
Jeremy Banks

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เพื่อสร้างแอปพลิเคชั่นที่ถ่ายรูป การดำเนินการนี้เรียกว่า "Take Video Snapshot" และต้องใช้ "กล้องในตัว, iSight หรือเว็บแคมอื่น ๆ หรือกล้องดิจิทัลที่เชื่อมต่อกับคอมพิวเตอร์ของคุณ" เพียงทำเครื่องหมายที่ช่องtake picture automaticallyและตอนนี้คุณมีแอพที่คุณสามารถโทรได้จากบรรทัดคำสั่ง open TakePicture.appบันทึกเป็นแอปและจากนั้นคุณสามารถเรียกมันจากบรรทัดคำสั่งเช่น

ใช้ภาพรวมวิดีโอ


พยายามทำสิ่งนี้และใช้งานได้ แต่ฉันหวังว่าจะมีสิ่งที่ซ่อนเร้นมากกว่านี้
dacracot

@dacracot ฉันคิดได้มาก อย่างที่ฉันพูดนี่เป็นวิธีเดียวที่ฉันรู้ดังนั้นคุณจะต้องไปเส้นทางที่ยากลำบากหากคุณต้องการซ่อนตัว
สไตล์

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.