Apakah ada pengambil gambar webcam CLI yang berfungsi dengan perangkat video4linux2?

8

Saya sudah mencoba semuanya

apt-cache search webcam |sort -u

dan semuanya memiliki beberapa masalah. Memperbaiki kesalahan sintaks, menunjukkan bagaimana menggunakan "GUI saja" dari CLI atau ffmpeg / mencoder / vlc one-liner yang bagus akan menjawab pertanyaan saya. Atau karena saya tahu cara membuat ffmpeg mengambil MJPEG singkat, menunjukkan cara melepas jpeg pertama akan berhasil, saya kira. Tetap saja, ini seharusnya lebih mudah dari itu.

$ camgrab
/dev/video0: no v4l device

(camgrab mungkin tidak menangani 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'.

menghasilkan ini

$ motion

ada di luar saya.

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

tidak benar-benar gambar.

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

menghasilkan ini

$ 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 tampaknya meminta saya mengatur file konfigurasi untuk menampilkan gambar di suatu tempat dan tampaknya tidak melakukan apa pun secara default

$ /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
  • Hanya GUI
    • camorama
    • keju
    • kamoso
    • luvcview
John Baber-Lucero
sumber
webcamd adalah sebuah lelucon. Semua yang dilakukannya adalah ini / usr / bin / v4lctl -c / dev / video0 snap jpeg 160x120 ~ / .webcamd / webcam.jpg Dari membaca kode ini adalah format config #section common <common> # Interval between tembakan (penting atau memasuki loop tak terbatas) inter = 60 www_path = / tmp / www enable_ftp = tidak ada webcam_resolution = 320x200 # / dev / ditambahkan ke perangkat ini = video0 #bagian gambar <picture> put_date = tidak ada font = huruf arial fontsize = 12 fontcolor = black disp_box = no boxcolor = black border = yes bordercolor = black #section ftp <ftp> host = pengguna localhost = port teknopaul = 999 kata sandi = direktori foo = / tmp
teknopaul
hmm tidak bisa masuk baris baru
teknopaul

Jawaban:

9

Dari sini

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.  

Dari komentar: streamer tidak termasuk dalam paket xawtv, sudo apt-get install streamer

RobotHumans
sumber
Streamer terlihat bagus. Anda harus apt-get secara terpisah; itu tidak datang dengan xawtv secara otomatis.
John Baber-Lucero
Itu satu-satunya yang berhasil. Tapi manusia itu lambat. Butuh 1,8 detik untuk mengambil gambar.
John Baber-Lucero
1
Mampir ke obrolan jika Anda ingin membicarakannya lagi. Menyimpan komentar yang tidak
aktif
3

Saya sudah melakukannya dengan mplayer tahun lalu, tetapi tidak ingat persis bagaimana caranya. mplayer tv:// -tv driver=v4l2:input=1:width=352:height=288:device=/dev/video0menunjukkan feed langsung, tetapi saya yakin Anda dapat menyimpannya sebagai jpg atau png. Periksa halaman manual.

jippie
sumber
2

Gunakan fswebcambukan dengan -otapi dengan --save. -omemberitahu tempat untuk menulis file log ...

contoh:

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

webcamd sedikit bercanda, skrip perl dengan komentar dalam bahasa Prancis!

Yang dilakukannya hanyalah ini

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

dalam satu lingkaran

Dari membaca kode ini adalah format konfigurasi

#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

Namun kredit di mana kredit jatuh tempo, saya tidak akan menemukan v4lctlmencari webcam :)

teknopaul
sumber
0

Metode baris perintah termudah untuk mengambil tangkapan layar dari webcam atau perangkat serupa ditemukan menggunakan mplayer:

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

Sekarang cukup tekan tombol 'dan' tangkapan layar dalam format png akan disimpan di direktori kerja Anda.

Jika Anda ingin beberapa tangkapan layar diambil secara otomatis, tekan tombol 'S' untuk memulai tangkapan layar dan tekan lagi untuk menghentikan alur :).

Referensi:

andrew.46
sumber