Существует ли средство захвата изображений с веб-камеры CLI, которое работает с устройством video4linux2?

8

Я перепробовал все в

apt-cache search webcam |sort -u

и у всего есть какая-то проблема. Исправление любых синтаксических ошибок, показ того, как использовать «GUI only» из CLI или хорошую однострочную строку 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 <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)

веб-камера, кажется, требует, чтобы я установил конфигурационный файл для 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
  • Только графический интерфейс
    • camorama
    • сыр
    • kamoso
    • luvcview
Джон Бабер-Лусеро
источник
webcamd - это шутка. Все, что он делает, это / usr / bin / v4lctl -c / dev / video0 snap jpeg 160x120 ~ / .webcamd / webcam.jpg При чтении кода это формат конфигурации #section common <common> # Интервал между снимки (важно или это входит в бесконечный цикл) inter = 60 www_path = / tmp / www enable_ftp = нет webcam_resolution = 320x200 # / dev / добавлено на это устройство = video0 # изображение раздела <picture> put_date = no font = arial fontsize = 12 fontcolor = black disp_box = нет boxcolor = черная рамка = да bordercolor = black #section ftp <ftp> host = localhost user = teknopaul port = 999 password = foo directory = / tmp
teknopaul
хм не могу войти в новые строки
teknopaul

Ответы:

9

От сюда

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.  

Из комментариев: стример не входит в пакет xawtv, sudo apt-get install streamer

RobotHumans
источник
Стример выглядит хорошо. Вы должны получить его отдельно, хотя; он не поставляется с xawtv автоматически.
Джон Бабер-Лусеро
Это единственное, что работает. Но человек это медленно. Захват изображения занимает 1,8 секунды.
Джон Бабер-Лусеро
1
Заходите в чат, если вы хотите поговорить об этом еще немного.
Облегченные
3

Я сделал это с mplayer несколько лет назад, но не могу вспомнить, как именно. mplayer tv:// -tv driver=v4l2:input=1:width=352:height=288:device=/dev/video0показывает прямую трансляцию, но я уверен, что вы можете сохранить его как JPG или PNG. Проверьте страницу руководства.

jippie
источник
2

Используйте fswebcamне с, -oа с --save. -oговорит куда писать лог файл ...

пример:

fswebcam --save /home/$USER/webcamGrab.jpg -d /dev/video1 -r 1280x960
Фрэнк
источник
1

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поиск веб-камеры :)

teknopaul
источник
0

Самый простой метод командной строки для снятия скриншота с веб-камеры или аналогичного устройства находится с помощью mplayer:

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

Теперь просто нажмите клавишу 's' и скриншот в формате png будет сохранен в вашем рабочем каталоге.

Если вы хотите, чтобы несколько снимков экрана были сделаны автоматически, нажмите клавишу «S», чтобы запустить снимки экрана, и нажмите ее еще раз, чтобы остановить поток :).

Ссылки:

andrew.46
источник