Existe-t-il un capteur d'image de webcam CLI qui fonctionne avec un périphérique video4linux2?

8

J'ai tout essayé

apt-cache search webcam |sort -u

et tout a un problème. Corriger toute erreur de syntaxe, montrer comment utiliser une "interface graphique uniquement" à partir de la CLI ou une bonne ffmpeg / mencoder / vlc one-liner répondrait à ma question. Ou comme je sais comment faire ffmpeg prendre un court MJPEG, montrant comment retirer le premier jpeg fonctionnerait, je suppose. Pourtant, cela devrait être plus simple que cela.

$ camgrab
/dev/video0: no v4l device

(camgrab ne gère probablement pas la 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'.

produit ce

$ motion

me dépasse.

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

pas vraiment une image.

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

produit ce

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

la webcam semble exiger que je mette un fichier de configuration pour ftp les images quelque part et semble ne rien faire par défaut

$ /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
  • GUI uniquement
    • camorama
    • fromage
    • kamoso
    • luvcview
John Baber-Lucero
la source
webcamd est une blague Tout ce qu'il fait est ceci / usr / bin / v4lctl -c / dev / video0 snap jpeg 160x120 ~ / .webcamd / webcam.jpg De la lecture du code, c'est le format de configuration #section common <common> # Intervalle entre plans (importants ou ils entrent dans une boucle infinie) inter = 60 www_path = / tmp / www enable_ftp = no webcam_resolution = 320x200 # / dev / est ajouté à cet appareil = video0 #section picture <picture> put_date = no font = arial fontsize size = 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 cant enter new lines
teknopaul

Réponses:

9

D' ici

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.  

D'après les commentaires: le streamer n'est pas inclus dans le paquet xawtv, sudo apt-get install streamer

RobotHumains
la source
Le streamer a l'air bien. Vous devez cependant l'obtenir séparément; il ne vient pas automatiquement avec xawtv.
John Baber-Lucero
C'est la seule chose qui fonctionne. Mais l'homme est-il lent. Il faut 1,8 seconde pour saisir une image.
John Baber-Lucero
1
Entrez pour discuter si vous voulez en parler un peu plus.
Réduit les
3

Je l'ai fait avec mplayer il y a des années, mais je ne me souviens pas exactement comment. mplayer tv:// -tv driver=v4l2:input=1:width=352:height=288:device=/dev/video0affiche un flux en direct, mais je suis convaincu que vous pouvez l'enregistrer au format jpg ou png. Consultez la page de manuel.

jippie
la source
2

Utilisez fswebcampas avec -omais avec --save. -oindique où écrire un fichier journal ...

exemple:

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

webcamd est un peu une blague, c'est un script perl avec des commentaires en français!

Tout ce qu'il fait c'est ceci

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

en boucle

De la lecture du code c'est le format de configuration

#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

Cependant crédit où crédits dus, je n'aurais pas trouvé de v4lctlrecherche de webcam :)

teknopaul
la source
0

La méthode de ligne de commande la plus simple pour prendre une capture d'écran à partir d'une webcam ou d'un appareil similaire se trouve en utilisant mplayer:

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

Maintenant, appuyez simplement sur la touche «s» et une capture d'écran au format png sera enregistrée dans votre répertoire de travail.

Si vous souhaitez que plusieurs captures d'écran soient prises automatiquement, appuyez sur la touche «S» pour démarrer les captures d'écran et appuyez à nouveau pour arrêter le flux :).

Références:

andrew.46
la source