Gibt es einen CLI-Webcam-Image-Grabber, der mit einem video4linux2-Gerät funktioniert?

8

Ich habe alles versucht

apt-cache search webcam |sort -u

und alles hat ein Problem. Das Korrigieren von Syntaxfehlern und das Zeigen, wie eine "Nur GUI" über die CLI oder ein guter Einzeiler ffmpeg / mencoder / vlc verwendet wird, würde meine Frage beantworten. Oder da ich weiß, wie man ffmpeg dazu bringt, ein kurzes MJPEG zu machen, würde es funktionieren, wenn ich zeige, wie man das erste JPEG abstreift. Dies sollte jedoch einfacher sein.

$ camgrab
/dev/video0: no v4l device

(camgrab geht wahrscheinlich nicht mit v4l2 um)

$ fswebcam --list-inputs
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
--- Available inputs:
0: Camera 1
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Premature end of JPEG file
Captured frame in 0.00 seconds.
--- Processing captured image...
There are unsaved changes to the image.
$ fswebcam --input 0 boo.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.jjjjjjjjj
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Premature end of JPEG file
Captured frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'boo.jpg'.

produziert dies

$ motion

ist zu hoch für mich.

$ uvccapture -oboo.jpg 
$ file boo.jpg        
boo.jpg: data
$ qiv -t boo.jpg 
Unable to read file: Failed to load image 'boo.jpg': Error interpreting JPEG image file (Not a JPEG file: starts with 0x8f 0x5a)

nicht wirklich ein Bild.

$ /usr/bin/vgrabbj -d /dev/video0 -f boo.jpg
Could not open configfile /usr/etc/vgrabbj.conf, ignoring
Reading image from /dev/video0

produziert dies

$ webcamd
RTFM, missing template (/home/$USER/.webcamd/index_up.html)
$ man webcamd |cat
WEBCAMD(1)                                                                     WEBCAMD(1)
NAME
    webcamd - Take a image from your webcam
SYNOPSIS
    webcamd [ start | stop | refresh ]
DESCRIPTION
    This manual page documents briefly the webcamd daemon.
    This manual page was written for the Debian distribution because the original pro‐
    gram does not have a manual page.
    webcamd is a program that take images from your webcam and put it on a ftp  server
    on a local (web) directory
OPTIONS
    start  Start the daemon.
    stop   Stop the daemon.
    refresh Take a shot !
AUTHOR
    This  manual  page  was  written by Julien Danjou <[email protected]> for the Debian
    system (but may be used by others).  Permission is  granted  to  copy,  distribute
    and/or modify this document under the terms of the GNU Free Documentation License,
    Version 1.1 or any later version published by the Free Software  Foundation;  with
    no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts.
                                  2002 april 21                            WEBCAMD(1)
$ webcamd start
RTFM, missing template (/home/$USER/.webcamd/index_up.html)
$ webcamd refresh
RTFM, missing template (/home/$USER/.webcamd/index_up.html)

Webcam scheint zu verlangen, dass ich eine Konfigurationsdatei einstelle, um die Bilder irgendwo zu ftp und scheint standardmäßig nichts zu tun

$ /usr/bin/webcam 
reading config file: /home/$USER/.webcamrc
video4linux webcam v1.5 - (c) 1998-2002 Gerd Knorr
grabber config:
  size 320x240 [none]
  input (null), norm (null), jpeg quality 75
  rotate=0, top=0, left=0, bottom=240, right=320
  • Nur GUI
    • Camorama
    • Käse
    • Kamoso
    • luvcview
John Baber-Lucero
quelle
webcamd ist ein Witz Alles, was es tut, ist dies / usr / bin / v4lctl -c / dev / video0 snap jpeg 160x120 ~ / .webcamd / webcam.jpg Nach dem Lesen des Codes ist dies das Konfigurationsformat #section common <common> # Intervall zwischen Aufnahmen (wichtig oder es tritt in eine Endlosschleife ein) inter = 60 www_path = / tmp / www enable_ftp = no webcam_resolution = 320x200 # / dev / wird diesem Gerät vorangestellt = video0 #section picture <picture> put_date = no font = arial fontsize = 12 fontcolor = schwarz disp_box = nein boxcolor = schwarzer Rand = ja bordercolor = schwarz #section ftp <ftp> host = localhost user = teknopaul port = 999 passwort = foo verzeichnis = / tmp
teknopaul
hmm kann keine neuen Zeilen
eingeben

Antworten:

9

Von hier aus

Streamer

Streamer (http://linux.bytesex.org/xawtv/) is a versatile program that allows a
capture from a webcam or video device using only the command line. It may be offered 
in your Linux distribution's Xawtv package. To install streamer try

# sudo apt-get install xawtv

To take a standard JPEG picture from the command line where the camera is accessed 
through /dev/video0:

#streamer -c /dev/video0 -b 16 -o outfile.jpeg

Where > -b is the number of colors (in bpp,whether 15, 16, 24 or 32)
& -o is the output filename in the current directory

If you are going to capture multiple images be sure to append the output file name 
with zeros, as streamer can name the capture files in sequence, i.e., -o 
outfile000.jpeg becomes outfile001.jpeg, outfile002.jpeg, and so on.  

Aus Kommentaren: Streamer ist nicht im xawtv-Paket enthalten, sudo apt-get install streamer

RobotHumans
quelle
Streamer sieht gut aus. Sie müssen es jedoch separat erwerben. es kommt nicht automatisch mit xawtv.
John Baber-Lucero
Es ist das einzige, was funktioniert. Aber Mann ist es langsam. Das Aufnehmen eines Bildes dauert 1,8 Sekunden.
John Baber-Lucero
1
Kommen Sie vorbei, um zu chatten, wenn Sie noch mehr darüber sprechen möchten. Hält die laufenden Kommentare niedrig
RobotHumans
3

Ich habe es vor Jahren mit mplayer gemacht, kann mich aber nicht genau erinnern, wie. mplayer tv:// -tv driver=v4l2:input=1:width=352:height=288:device=/dev/video0zeigt einen Live-Feed, aber ich bin überzeugt, dass Sie ihn als JPG oder PNG speichern können. Überprüfen Sie die Handbuchseite.

Jippie
quelle
2

Verwenden Sie fswebcamnicht mit , -oaber mit --save. -osagt, wo eine Protokolldatei geschrieben werden soll ...

Beispiel:

fswebcam --save /home/$USER/webcamGrab.jpg -d /dev/video1 -r 1280x960
Frank
quelle
1

Webcamd ist ein Witz, es ist ein Perl-Skript mit Kommentaren auf Französisch!

Alles was es tut ist das

/usr/bin/v4lctl -c /dev/video0 snap jpeg 160x120 ~/.webcamd/webcam.jpg

in einer Schleife

Nach dem Lesen des Codes ist dies das Konfigurationsformat

#section common
<common>
# Interval between shots (important or it enters an infinite loop)
inter=60
www_path=/tmp/www
enable_ftp=no
webcam_resolution=320x200
# /dev/ is prepended on to this
device=video0
#section picture
<picture>
put_date=no
font=arial
fontsize=12
fontcolor=black
disp_box=no 
boxcolor=black
border=yes
bordercolor=black
#section ftp
<ftp>
host=localhost
user=teknopaul
port=999
password=foo
directory=/tmp

Allerdings Kredit, wo Kredite fällig sind, hätte ich die v4lctlSuche nach Webcam nicht gefunden :)

Teknopaul
quelle
0

Die einfachste Befehlszeilenmethode zum Aufnehmen eines Screenshots von einer Webcam oder einem ähnlichen Gerät ist mplayer:

mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 15 -vf screenshot

Drücken Sie jetzt einfach die Taste 's' und ein Screenshot im PNG-Format wird in Ihrem Arbeitsverzeichnis gespeichert.

Wenn Sie möchten, dass mehrere Screenshots automatisch aufgenommen werden, drücken Sie die Taste 'S', um die Screenshots zu starten, und drücken Sie sie erneut, um den Fluss zu stoppen :).

Verweise:

andrew.46
quelle