Esiste un programma di acquisizione di immagini della webcam CLI che funziona con un dispositivo video4linux2?


8

Ho provato di tutto

apt-cache search webcam |sort -u

e tutto ha qualche problema. Correggere eventuali errori di sintassi, mostrando come usare una "GUI only" dalla CLI o un buon ffmpeg / mencoder / vlc one-liner risponderebbe alla mia domanda. O dal momento che so come fare in modo che ffmpeg prenda un breve MJPEG, mostrando come rimuovere il primo jpeg funzionerebbe, immagino. Tuttavia, questo dovrebbe essere più semplice di così.

$ camgrab
/dev/video0: no v4l device

(Camgrab probabilmente non gestisce v4l2)

$ 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'.

produce questo

$ motion

è oltre me.

$ 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)

non proprio un'immagine.

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

produce questo

$ 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 <acid@debian.org> 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)

la webcam sembra richiedere che imposti un file di configurazione per ftp le immagini da qualche parte e sembra non fare nulla per impostazione predefinita

$ /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
  • Solo GUI
    • camorama
    • formaggio
    • kamoso
    • luvcview

webcamd è uno scherzo Tutto ciò che fa è questo / usr / bin / v4lctl -c / dev / video0 snap jpeg 160x120 ~ / .webcamd / webcam.jpg Dalla lettura del codice questo è il formato di configurazione #section common <common> # Intervallo tra scatti (importante o entra in un ciclo infinito) inter = 60 www_path = / tmp / www enable_ftp = no webcam_resolution = 320x200 # / dev / è anteposto a questo dispositivo = 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
teknopaul

hmm non può entrare in nuove linee
teknopaul

Risposte:


9

Da qui

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.  

Dai commenti: lo streamer non è incluso nel pacchetto xawtv, sudo apt-get install streamer


Lo Streamer sembra buono. Devi prenderlo separatamente però; non viene fornito automaticamente con xawtv.
John Baber-Lucero,

È l'unica cosa che funziona. Ma l'uomo è lento. Ci vogliono 1,8 secondi per afferrare un'immagine.
John Baber-Lucero,

1
Entra per chattare se vuoi parlarne ancora. Tiene giù i commenti di run-on
RobotHumans,

3

L'ho fatto con mplayer anni fa, ma non ricordo esattamente come. mplayer tv:// -tv driver=v4l2:input=1:width=352:height=288:device=/dev/video0mostra un feed dal vivo, ma sono convinto che puoi salvarlo come jpg o png. Controlla la pagina del manuale.


2

Utilizzare fswebcamnon con -oma con --save. -odice dove scrivere un file di registro ...

esempio:

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

1

webcamd è un po 'uno scherzo, è uno script perl con commenti in francese!

Tutto ciò che fa è questo

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

in un ciclo

Dalla lettura del codice questo è il formato di configurazione

#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

Comunque credito dove crediti dovuti, non avrei trovato la v4lctlricerca di webcam :)


0

Il metodo più semplice da riga di comando per acquisire uno screenshot da una webcam o un dispositivo simile si trova usando mplayer:

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

Ora premi semplicemente il tasto 's' e uno screenshot in formato png verrà salvato nella tua directory di lavoro.

Se si desidera acquisire più schermate automaticamente, premere il tasto 'S' per avviare le schermate e premerlo di nuovo per interrompere il flusso :).

Riferimenti:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.