Machen Sie ein Foto vom Terminal

58

Ich möchte mit der Webcam vom Terminal aus ein Bild aufnehmen können. Dieses Bild wird dann in einer Datei gespeichert. Wie geht das?

Luis Alvarado
quelle

Antworten:

32

Wenn Sie nach etwas Automatisiertem suchen, webcamist das ziemlich anständig. Es gibt viele schöne Möglichkeiten, um die Fotos über das Internet zu übertragen.

Wenn Sie mehr Handbuch benötigen und es sich um eine Kamera handelt, die von V4L / UVC (meistens) unterstützt wird, können Sie streamereinen Frame vom Gerät erfassen:

streamer -f jpeg -o image.jpeg
Oli
quelle
Vielen Dank, Oli. Wusste nicht, dass ein Webcam-Programm namens WEBCAM (Die Ironie ...) existiert. Und ja, die Webcam ist in der Liste der unterstützten V4L.
Luis Alvarado
46

Es gibt eine andere Anwendung, mit der die Bilder von der Webcam mit dem Namen Fswebcam aufgenommen werden können . das kannst du mit installieren

sudo apt-get install fswebcam

Mit dem folgenden Befehl können Sie ein Beispiel erstellen.

fswebcam -r 640x480 --jpeg 85 -D 1 web-cam-shot.jpg

In der obigen Codesyntax -rsteht dies für die Bildauflösung, --jpegfür den Formattyp des Bildes und 85für den Qualitätsstandard, -Dfür die vor der Aufnahme festgelegte Verzögerung.

Nun wird dein Bild endgültig mit dem Namen web-cam-shot.jpg gespeichert.

Ich hoffe, das hilft.

rɑːdʒɑ
quelle
9
In meinem Fall, meinem Testgerät, musste ich Frames überspringen, um das Bild richtig zu machen. Wenn ich die ersten Bilder mache, ist das Bild sehr dunkel, weil die Kamera noch nicht fertig war. fswebcam -r 640x480 --jpeg 100 -D 3 -S 13 fswebcam.jpg
Msmafra
@tenshimsm Ich habe 10 Minuten damit verbracht, herauszufinden, was mit meiner fswebcam nicht stimmt, und dann das Paket entfernt. Installierte es erneut, nur um Ihren Ansatz zu versuchen, 30 Frames arbeiteten für mich. Danke :)
Chirag Bhatia - Chirag64
Funktioniert mit meiner 5,99 € Sodial-Webcam avconvbesser.
Avio
Was ich als hilfreich empfunden habe, ist: v4lctl bright 50% # apt-get install xawtv
Grzegorz Wierzowiecki
--no-banner (Entfernt das unterste Banner mit Zeitstempel)
João Cartucho
20

Mit avconvoder ffmpegkönnen Sie auch einen Frame von Ihrem Gerät aufnehmen. Zum Beispiel:

avconv -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

oder

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 /tmp/out.jpg

Dies öffnet sich /dev/video0als video4linux2kompatibles Gerät, richtet die Auflösung auf ein 640x480, streamt für 2 Sekunden ( 00:00:02oder einfach 2), nimmt dann ein oneEinzelbild auf und speichert es auf /tmp/out.jpg.

Überprüfen Sie, ob es sich bei Ihrem Gerät /dev/video0um ein anderes handelt.

Die verfügbaren Auflösungen hängen von Ihrer Webcam ab. Meins geht auf 640x480 und ich habe es mit einem Tool namens überprüft qv4l2, das zum Konfigurieren eines video4linux2-Geräts verwendet wird.

Mit dem -ssParameter kann das Gerät ordnungsgemäß gestartet werden. Hier in meinen Tests gibt es einen Einblendeffekt, während die Kamera eingeschaltet wird. Wenn ich nur weglasse -ss 2, wird das aufgenommene Bild sehr dunkel.

Alexandre Schmidt
quelle
Ich bevorzuge diese Lösung, da ich bereits avconv installiert habe. Auch die Ausgabe von avconv gibt Hinweise auf die maximale Auflösung, wie der v4l-Treiber zeigt, wenn er auf eine niedrigere Spezifikation zurückgreifen muss.
Eiswasser
10

Sie können auch uvccapture ausprobieren .

uvccapture -m
Bibhas
quelle