Czy istnieje moduł przechwytywania obrazu kamery CLI, który współpracuje z urządzeniem video4linux2?


8

Próbowałem wszystkiego

apt-cache search webcam |sort -u

i wszystko ma jakiś problem. Poprawienie błędów składniowych, pokazanie, jak używać „tylko GUI” z interfejsu CLI lub dobrego jednowierszowego ffmpeg / mencoder / vlc, odpowiedziałoby na moje pytanie. Albo skoro wiem, jak zmusić ffmpeg do wzięcia krótkiego MJPEG, myślę, że pokazanie, jak usunąć pierwszy jpeg, zadziałałoby. Jednak powinno to być prostsze.

$ camgrab
/dev/video0: no v4l device

(camgrab prawdopodobnie nie obsługuje 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'.

produkuje to

$ motion

jest poza mną.

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

tak naprawdę nie jest to obraz.

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

produkuje to

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

Wygląda na to, że kamera internetowa wymaga ustawienia pliku konfiguracyjnego do ftp gdzieś zdjęć i domyślnie nic nie robi

$ /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
  • Tylko GUI
    • camorama
    • ser
    • kamoso
    • luvcview

webcamd to żart Wszystko, co robi, to to / usr / bin / v4lctl -c / dev / video0 snap jpeg 160x120 ~ / .webcamd / webcam.jpg Po odczytaniu kodu jest to format konfiguracji #section common <common> # Interval between strzały (ważne lub wchodzi w nieskończoną pętlę) inter = 60 www_path = / tmp / www enable_ftp = brak rozdzielczości kamery = 320x200 # / dev / jest dołączony do tego urządzenia = wideo0 # przekrój obraz <zdjęcie> data_wprowadzenia = brak czcionki = rozmiar czcionki arial = 12 fontcolor = czarny disp_box = brak boxcolor = czarna ramka = tak bordercolor = czarny # sekcja ftp <ftp> host = localhost użytkownik = port teknopaul = 999 hasło = katalog foo = / tmp
teknopaul

hmm nie mogę wejść w nowe linie
teknopaul

Odpowiedzi:


9

od tutaj

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.  

Z komentarzy: streamer nie jest zawarty w pakiecie xawtv, sudo apt-get install streamer


Streamer wygląda dobrze. Musisz jednak zdobyć go osobno; nie przychodzi automatycznie z xawtv.
John Baber-Lucero,

To jedyna rzecz, która działa. Ale człowiek jest wolny. Wykonanie zdjęcia zajmuje 1,8 sekundy.
John Baber-Lucero,

1
Wejdź na czat, jeśli chcesz o tym porozmawiać. Utrzymuje komentarze na
później

3

Zrobiłem to z mplayerem lata temu, ale nie pamiętam dokładnie, jak to zrobić. mplayer tv:// -tv driver=v4l2:input=1:width=352:height=288:device=/dev/video0pokazuje kanał na żywo, ale jestem przekonany, że możesz zapisać go jako jpg lub png. Sprawdź stronę podręcznika.


2

fswebcamNie używaj z, -oale z --save. -omówi, gdzie napisać plik dziennika ...

przykład:

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

1

webcamd to trochę żart, to skrypt perla z komentarzami w języku francuskim!

Wszystko to robi

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

w pętli

Po odczytaniu kodu jest to format konfiguracji

#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

Jednak kredyty tam, gdzie są kredyty, nie znalazłbym v4lctlszukania kamery internetowej :)


0

Najłatwiejszą metodę wykonania zrzutu ekranu z kamery internetowej lub podobnego urządzenia z wiersza poleceń można znaleźć za pomocą mplayer:

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

Teraz wystarczy nacisnąć klawisz „s”, a zrzut ekranu w formacie png zostanie zapisany w katalogu roboczym.

Jeśli chcesz zrobić kilka zrzutów ekranu automatycznie, naciśnij klawisz „S”, aby rozpocząć zrzuty ekranu i naciśnij ponownie, aby zatrzymać przepływ :).

Bibliografia:

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.