Webkamera v Linuxu (V4L, UVC)

Zdeněk Materna zdenek.materna na gmail.com
Úterý Duben 12 18:17:59 CEST 2011


Zdravím,

měl bych dotaz pro místní linuxové odborníky, pokud nějací jsou :-)
Mám problém s UVC webkamerou. Jde o Genius Facecam 1000. Chtěl bych ji
použít s programem mjpg-streamer na streamování obrazu po ethernetu.
Nejdříve jsem to zkoušel s Facecam 1320 a fungovalo to dobře, až na
to, že ta má jenom nekomprimovaný výstup, takže kompresi musel
obstarávat mjpg-streamer a bylo to pomalé. Facecam 1000 má sice výstup
komprimovaný, ale pro změnu nefunguje. Tedy na notebooku (x86) je
všechno v nejlepším pořádku, ale na ARMu ne. Abych vyloučil problém v
mjpg-streameru, zkompiloval jsem si referenční kód z:
http://v4l2spec.bytesex.org/spec-single/v4l2.html#CAPTURE-EXAMPLE a
výsledek je stejný - na x86 funguje, na ARMu ne. Nevím jestli nemůže
být problém v tom, že ARM (AT91SAM9260) má sice USB2.0, ale jen
full-speed. Nicméně Facecam 1320 fungovala, takže tím to asi nebude.

Na x86 používám jádro 2.6.35 a normální glibc. Na kitu s ARMem mám
2.6.33.7.2-rt30 a uClibc.

v4l capture example skončí s chybou: VIDIOC_STREAMON error 5, Input/output error

Podle logu je kamera detekovaná dobře:

[ 2042.100000] usb 1-1: new full speed USB device using at91_ohci and address 3
[ 2042.290000] usb 1-1: New USB device found, idVendor=0458, idProduct=707e
[ 2042.290000] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2042.310000] usb 1-1: Product: FaceCam 1000
[ 2042.320000] usb 1-1: Manufacturer: KYE SYSTEMS CORP.
[ 2042.400000] uvcvideo: Found UVC 1.00 device FaceCam 1000 (0458:707e)
[ 2042.460000] input: FaceCam 1000 as
/devices/platform/at91_ohci/usb1/1-1/1-1:1.0/input/input1

Jak tak koukám na různá fóra, hodně problémů se řeší vložením modulu
uvcvideo s parametrem quirks=2; nevím co to má přesně dělat, má to v
tomto případě nějaký smysl? Ptám se, protože to nemůžu jen tak snadno
vyzkoušet - uvcvideo nemám jako modul.

Díky za případné rady.

S pozdravem
Zdeněk Materna


Další informace o konferenci Hw-list