是否有可与 video4linux2 设备配合使用的 CLI 网络摄像头图像抓取器?

是否有可与 video4linux2 设备配合使用的 CLI 网络摄像头图像抓取器?

我已经尝试了一切

apt-cache search webcam |sort -u

一切都有问题。纠正任何语法错误,展示如何使用 CLI 中的“仅 GUI”或好的 ffmpeg/mencoder/vlc 单行程序可以回答我的问题。或者,由于我知道如何让 ffmpeg 拍摄短 MJPEG,我想展示如何剥离第一个 jpeg 会起作用。不过,这应该比那更简单。

$ camgrab
/dev/video0: no v4l device

(camgrab 可能无法处理 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'.

生产

$ motion

超出了我的能力范围。

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

并不是真正的图像。

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

生产

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

网络摄像头似乎要求我设置一个配置文件,以便将图像通过 ftp 传输到某个地方,但默认情况下似乎什么也不做

$ /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
    • 卡莫拉马
    • 奶酪
    • 卡莫索
    • luvcview

答案1

这里

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.  

来自评论:streamer 不包含在 xawtv 包中,sudo apt-get install streamer

答案2

几年前我用 mplayer 做过,但记不清具体怎么做了。mplayer tv:// -tv driver=v4l2:input=1:width=352:height=288:device=/dev/video0显示实时供稿,但我相信你可以将其保存为 jpg 或 png。查看手册页。

答案3

不是使用fswebcamwith-o而是使用 with --save-o告诉在哪里写入日志文件...

例子:

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

答案4

webcamd 有点像个笑话;它是一个带有法语注释的 perl 脚本!

它所做的就是

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

循环

从代码来看,这是配置格式

#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

v4lctl然而,值得赞扬的是,我在搜索网络摄像头时并没有发现:)

相关内容