31 votes

Comment prendre une photo statique avec ma caméra iSight à partir de la ligne de commande ?

Existe-t-il un utilitaire de ligne de commande qui me permette de prendre une photo à partir de l'appareil photo intégré ? Quelque chose comme screencapture permet de faire des captures d'écran.

J'ai opté pour un outil en ligne de commande car j'aimerais qu'il soit discret, sans compte à rebours, flash ou autre indication pour l'utilisateur qu'une photo est prise.

1 votes

Jetez un coup d'œil au code source de preyproject.com -- Ils font ce genre de choses avec leur application dont le code est ouvert.

3 votes

N'oubliez pas que le voyant vert situé à côté de l'iSight s'allume brièvement lorsque l'appareil enregistre l'image.

34voto

Utilisez imagesnap . Il peut être installé avec brew install imagesnap ou en téléchargeant le binaire sur le site web.

Il peut notamment servir à prendre des séries d'instantanés :

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

Il ne recadre pas non plus les images horizontalement. (Photo Booth change le rapport d'aspect en 3:2).

5 votes

Il convient également de noter que imagesnap a une -t pour prendre une photo tous les x.xx secondes. Cette boucle "while" pourrait donc être remplacée par imagesnap -t 1 Cependant, dans le cas présent, imagesnap génère son propre nom de fichier (par ex. snapshot-00000-2015-07-23_10-36-52.853.jpg ).

0 votes

Si vous prévoyez d'utiliser imagesnap via ssh, vous aurez besoin des privilèges sudo. Je l'utilise pour prendre des nouvelles de mes chats.

7voto

JohnMcG Points 5062

OS X n'est pas livré avec des utilitaires à cet effet.

Une solution tierce est imagesnap . Il vous permet de capturer une image à partir de n'importe quel périphérique vidéo connecté, en choisissant par défaut la caméra iSight intégrée. Il est disponible sous la forme d'un simple fichier binaire que vous pouvez regrouper avec votre logiciel, et il est placé dans le domaine public.

Il existe de nombreuses références sur Internet au iSightCapture qui était autrefois un choix populaire pour cela, mais il n'est plus maintenu.

0 votes

Quelque chose d'indigène ?

0 votes

@dacracot Malheureusement, Apple n'a rien prévu de tel.

0 votes

Ce qui est vraiment bizarre, c'est qu'Automator fournit une action pour prendre une photo, mais ne reconnaît pas l'iSight comme un appareil photo valide !

6voto

Pierz Points 2729

Malheureusement imagesnap ne semble plus fonctionner sous OSX10.11/El Capitan. Une autre alternative consiste à installer ffmpeg (MacPorts : port install ffmpeg o brew install ffmpeg ) et exécutez :

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

0 votes

Cela semble fonctionner maintenant sur Catalina (10.15.6), la seule chose est que lors de la première exécution il faut que le terminal reçoive la permission d'utiliser la caméra.

5voto

styfle Points 1687

Nativement, il existe un moyen mais il est extrêmement basique. Vous pouvez utiliser Automator pour faire une application qui prend une photo. L'action s'appelle "Prendre un instantané vidéo" et nécessite une "caméra intégrée, une iSight ou une autre webcam, ou un appareil photo numérique connecté à votre ordinateur". Il suffit de cocher la case pour take picture automatically et vous avez maintenant une application que vous pouvez appeler depuis la ligne de commande. Enregistrez-la en tant qu'application et vous pourrez l'appeler depuis la ligne de commande comme suit open TakePicture.app .

Take Video Snapshot

0 votes

J'ai essayé et ça a marché, mais j'espérais quelque chose de plus furtif.

0 votes

@dacracot Je m'en doutais. Comme je l'ai dit, c'est le seul moyen natif que je connaisse, donc vous devrez passer par la voie dure si vous voulez de la furtivité.

5voto

Andrey Losev Points 177

Comme un autre poster l'a mentionné, il existe un utilitaire appelé iSightCapture qui peut faire cela.

J'ai une fois écrit un script pour saisir périodiquement une image iSight et une capture de mes deux moniteurs et les poster sur un site web privé afin que je puisse voir ce qui se passe sur mon ordinateur. Voici comment j'ai scripté iSightCapture pour le faire.

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

Notez l'utilisation de "sips" pour retourner la capture isight horizontalement.

Un lien de téléchargement fonctionnel (2012-10-05) : iSightCapture ( via ), testé sur OSX 10.8.2

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X