Sisällysluettelo

Logitech QuickCam Pro 9000

Logitech Quickcam Pro 9000 on hyvällä optiikalla sekä mikrofonilla varustettu web-kamera.

Pro 9000 web-kamera käyttää modulia, jonka nimi on "uvcvideo". Modulin kotisivu:

http://linux-uvc.berlios.de/

GUVCViewer

GUVCViewer on erinomainen ohjelma, jolla voi tallentaa webkameran kuvaa ja ääntä.

http://forum.ubuntu-fi.org/index.php?topic=16998.msg125757

Moduli on valmiina Ubuntu 7.10:ssä

{{{asmok@ubuntu:~$ locate uvcvideo /lib/modules/2.6.22-14-generic/ubuntu/media/usbvideo/uvcvideo.ko /lib/modules/2.6.22-14-rt/ubuntu/media/usbvideo/uvcvideo.ko asmok@ubuntu:~$ }}}

Modulin voi myös rakentaa itse viimeisimmästä lähdekoodista. Lähdekoodi haetaan svn-ohjelmalla. Modulin rakentamiseen tarvitaan kunkin Linux-ytimen header-tiedostot sekä joukko ohjelmoimiseen tarvittavia ohjelmia. Itse Linux-ydintä ei tarvitse kuitenkaan rakentaa kokonaan uusiksi, vain moduli - jos siihen on tarvetta - se on valmiina Ubuntu 7.10:ssä.

{{{svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk }}}

Ubuntu 7.10 tunnistaa kameran automaattisesti ja lataa modulin valmiiksi.

{{{asmok@ubuntu:~$ lsusb | grep Logitech Bus 003 Device 004: ID 046d:0990 Logitech, Inc. asmok@ubuntu:~$ }}}

{{{asmok@ubuntu:~$ lsmod | grep video video 18060 0 uvcvideo 53636 0 video_buf 26244 1 saa7146_vv compat_ioctl32 2304 1 uvcvideo videodev 29568 2 uvcvideo,saa7146_vv v4l1_compat 15364 3 uvcvideo,saa7146_vv,videodev v4l2_common 18560 3 uvcvideo,saa7146_vv,videodev usbcore 139912 9 snd_usb_audio,snd_usb_lib,uvcvideo,xpad,hci_usb,usbhid,ehci_hcd,uhci_hcd asmok@ubuntu:~$ }}}

Ohjelmia uvcvideo-modulin käyttämiseksi

Uvcvideo-modulin avuksi on ohjelmoitu pieni joukko tehokkaita ohjelmia.

uvcview-20071108

Uvcview on Gnome-ohjelma, sen kotisivu on täällä:

http://www.nurs.or.jp/~ogochan/hack/uvcview.html

luvcview-20070512

Toinen samantapainen ohjelma on luvcview. Tällä ohjelmalla on mahdollista tallentaa videota avi-muodossa.

Ohjelman linkki, uusin versio:

http://mxhaard.free.fr/spca50x/Investigation/uvc/luvcview-20070512.tar.gz

Uvc-streamer

Kolmas on komentoriviltä toimiva striimausohjelma, lähetettävää videota voi seurata samassa lähiverkossa VLC-ohjelmalla.

Ohjelman kotisivu:

http://naaa.de/uvc_streamer.htm

Ohjelman käynnistys.

{{{asmok@ubuntu:~/bin/mjpg-streamer/uvc-streamer$ ./uvc_stream Using V4L2 device.....: /dev/video0 Resolution............: 640 x 480 frames per second.....: 5 TCP port..............: 8080 motor control TCP port: 8081 }}}

Striimatun videon katselu vlc-ohjelmalla.

{{{asmok@ubuntu:~/bin/mjpg-streamer/uvc-streamer$ vlc http://localhost:8080/ VLC media player 0.8.6c Janus }}}

Mjpg-streamer

Kun uvc-streamer lähettää kuvavirran sellaisenaan lähiverkkoon, niin mjpg-streamer-ohjelmalla kuvavirran saa upotettua www-sivulle. Ohjelmaan sisältyy pieni http-palvelin tai palvelu (output_http.so), joten kokonaisen LAMP-palvelimen asennus on turhaa, kun haluaa lähettää kuvavirtaa omalta työasemalta lähiverkkoon.

Ohjelman kotisivu:

http://naaa.de/uvc_streamer.htm

{{{asmok@ubuntu:~/bin/mjpg-streamer/mjpg-streamer$ ./mjpg_streamer -o "output_http.so -w ./www" MJPG Streamer Version.: 2.0

}}}

Mjpg-streamer ja Cambozola-java-applet

Mjpg-streamer sisältää Cambozola-java-appletin, jolla kameraa voi jonkin verran ohjata. Kamerassahan ei ole kääntyvää mekanismia, mutta suurennos ja pienennys onnistuu.

MPlayer

MPlayer toimii komentoriviltä käynnistettynä seuraavalla tavalla.

mplayer -tv driver=v4l2:width=640:height=480:device=/dev/video0:fps=30:outfmt=yuy2 tv://

{{{asmok@ubuntu:~$ mplayer -tv driver=v4l2:width=640:height=480:device=/dev/video0:fps=30:outfmt=yuy2 tv:// MPlayer 1.0rc2-4.1.3 (C) 2000-2007 MPlayer Team CPU: Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz (Family: 6, Model: 15, Stepping: 2) CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled with runtime CPU detection. mplayer: could not connect to socket mplayer: No such file or directory Failed to open LIRC support. You will not be able to use your remote control.

Playing tv://. TV file format detected. Selected driver: v4l2

v4l2: ioctl get standard failed: Invalid argument Selected device: UVC Camera (046d:0990)

tv.c: norm_from_string(pal): Bogus norm parameter, setting default. v4l2: ioctl enum norm failed: Invalid argument Error: Cannot set norm! Selected input hasn't got a tuner! v4l2: ioctl set mute failed: Invalid argument v4l2: ioctl query control failed: Invalid argument xscreensaver_disable: Could not find XScreenSaver window. GNOME screensaver disabled ========================================================================== Opening video decoder: [raw] RAW Uncompressed Video VDec: vo config request - 640 x 480 (preferred colorspace: Packed YUY2) VDec: using Packed YUY2 as output csp (no 0) Movie-Aspect is undefined - no prescaling applied. VO: [xv] 640x480 => 640x480 Packed YUY2 Selected video codec: [rawyuy2] vfm: raw (RAW YUY2) ========================================================================== Audio: no sound Starting playback... }}}

Ffmpeg-kaappaus

Ffmpeg osaa kaapata kuvavirtaa tällaisella komennolla.

ffmpeg -f video4linux2 -s 640x480 -r 15 -i /dev/video0 -f m4v out.m4v

{{{asmok@ubuntu:~$ ffmpeg -f video4linux2 -s 640x480 -r 15 -i /dev/video0 -f m4v out.m4v FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.

[video4linux2 @ 0xb7fa3610][3]Capabilities: 4000001 Input #0, video4linux2, from '/dev/video0':

Output #0, m4v, to 'out.m4v':

Stream mapping:

Press [q] to stop encoding frame= 96 q=22.2 Lsize= 423kB time=6.4 bitrate= 541.6kbits/s video:31kB audio:0kB global headers:0kB muxing overhead 1246.043680% asmok@ubuntu:~$ }}}

Kaapattu kuvavirta m4v-muodossa. Tiedoston katselu onnistuu parhaiten MPlayer-ohjelmalla.

{{{asmok@ubuntu:~$ file out.m4v out.m4v: MPEG sequence, v4, video, simple @ L1 asmok@ubuntu:~$ }}}

VLC

Kuvan tulostaminen web-sivulle flash aplletilla

Tarvitset vain vlcn ja x264 codekin

Käynnistetään vlc

cvlc v4l2:///dev/video0 --sout '#transcode{vcodec=x264{keyint=60,idrint=2},vcodec=h264,vb=200,ab=32,fps=25,width=400,height=226,acodec=mp3,samplerate=44100}:duplicate{dst=std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=:8082/stream.flv}'

Jos herjaa jotain (et ole asettanut itsellesi oikeuksia käyttää laitetta) niin fast fix

sudo chmod 777 /dev/video0

1. Luodaan stram kansio www kansion alle

sudo mkdir /var/www/stream

2. Asetetaan käyttäjäoikeudet

sudo chmod 777 /var/www/stream

3. Siirry streams kansioon ja lataa tarvittavat palikat

cd /var/www/stream

wget http://releases.flowplayer.org/flowplayer/flowplayer-3.2.8.zip

unzip *.zip

4. Luodaan html tiedosto streamausta varten

sudo nano /var/www/stream/index.html

Liitä tämä:

<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<script type="text/javascript" src="flowplayer-3.2.8.min.js"></script>

<!-- voit halutessasi poistaa tämän rivin -->
<link rel="stylesheet" type="text/css" href="style.css">

<!-- page title -->
<title>Webcam Stream</title>

</head><body>

<div id="page">

<h1>-=WEBCAM=-</h1>

<p>lol</p>

<!-- Muokkaa href riviä -->
<a
href="http://oman.palvelimen.ip.osoite:8082/stream.flv"
style="display:block;width:400px;height:225px"
id="player">
</a>

<!-- Location of flowplayer -->
<script>
flowplayer("player", "http://your.server.ip.address/stream/flowplayer-3.2.8.swf");
</script>

</div>


</body></html>

avaa selain ja kokeile http://oman.palvelimen.ip.osoite/stream/

Usb-mikrofoni

Web-kameran mikrofonia voi käyttää sellaisenaan yksinkertaisena äänittävän äänikorttina vaikkapa podcastien tekemiseen.

Ensin tarkistetaan äänikorttien osoitteet. Tässä koneessa on emolevyn oma äänipiiri kytketty pois käytöstä, siksi se ei ole käytössä. Sen korvaa SB Live! -äänikortti.

{{{asmok@ubuntu:~$ cat /proc/asound/cards

asmok@ubuntu:~$ }}}

Alsa - Arecord

Äänitys tapahtuu komentoriviltä seuraavalla komennolla. Äänitys katkaistaan brutaalisti Ctrl+C -komennolla.

arecord -D plughw:1,0 -c 1 -f cd -v testi.wav