Question

Je commence à commencer avec le cadre V4L2 sur Ubuntu 10.4.

Actuellement, j'utilise une webcam pour faire des tests.Je suis Cette Documentation àDémarrez, l'installation a été bien fonctionnée.J'ai téléchargé et compilé l'exemple d'application.Les problèmes sont la sortie vidéo, j'appelle l'exécutable en utilisant:

# modprobe -r pwc
# modprobe -v pwc fps=15 compression=3 mbufs=4 fbufs=4 size=vga
# ./capturer_mmap -D /dev/video0 -w 640*480 -p 0 | ./viewer -w 640*480 -p 0 

Compte tenu de cette sortie:

Entrez la description de l'image ici

sortie sur borne:

window size 640*480
Video bytespreline = 1280

Display:
Image byte order = LSBFirst
Bitmap unit      = 32
Bitmap bit order = LSBFirst
Bitmap pad       = 32

Window:
Depth            = 24
Red mask         = 0x00ff0000
Green mask       = 0x0000ff00
Blue mask        = 0x000000ff
Bits per R/G/B   = 8
Image byte order = LSBFirst
Bitmap unit      = 32
Bitmap bit order = LSBFirst
Bitmap pad       = 32
Depth            = 24
Red mask         = 0x00ff0000
Green mask       = 0x0000ff00
Blue mask        = 0x000000ff
Bits per pixel   = 32
Bytes per line   = 2560
IsShared         = True
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 431 requests (19 known processed) with 0 events remaining.
root@my-laptop:/home/foo/V4l2_samples-0.4.1# ./capturer_mmap -D /dev/video0 -w 640*480 -p 0  | ./viewer -w 640*480 -p 0
window size 640*480
Video bytespreline = 1280

Display:
Image byte order = LSBFirst
Bitmap unit      = 32
Bitmap bit order = LSBFirst
Bitmap pad       = 32

Window:
Depth            = 24
Red mask         = 0x00ff0000
Green mask       = 0x0000ff00
Blue mask        = 0x000000ff
Bits per R/G/B   = 8
Image byte order = LSBFirst
Bitmap unit      = 32
Bitmap bit order = LSBFirst
Bitmap pad       = 32
Depth            = 24
Red mask         = 0x00ff0000
Green mask       = 0x0000ff00
Blue mask        = 0x000000ff
Bits per pixel   = 32
Bytes per line   = 2560
IsShared         = True
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 101 requests (19 known processed) with 0 events remaining.

Je n'ai aucune idée de la façon de résoudre ce problème.Je crois que le Probrem est en code C parce que je peux utiliser webcam avec application webcam chesse.Toute aide est très appréciée.Merci beaucoup!

Était-ce utile?

La solution

On dirait que vous affichez l'image dans un format complètement incorrect.

Lorsque vous travaillez avec V4L2, vous devez certainement consulter " libv4l " (emballé à Debian , donc aussi disponible à Ubuntu). V4L2 permet à un périphérique de sortir ses cadres dans l'un quelconque d'un très grand nombre de formats vidéo, certains de ceux-ci sont compressés (par exemple à l'aide de JPEG). Core V4L2 ne fournit aucun moyen de convertir l'image en format donné que vos supports d'application sont donc en tant que dans la théorie, votre application doit prendre en charge tous les formats possibles.

Afin d'éviter la duplication de code (chaque application capable V4L2 est confrontée au même problème!), Libv4L a été créé: il permet un accès de bas niveau à l'appareil, mais à la Sametime garantit que le cadre peut être accessible en utilisant quelques-uns formats standard. par exemple. Si l'appareil prend en charge uniquement JPEG-Sortie et votre application demande des cadres RGB32, libv4l convient de manière transparente pour vous.

Vous pouvez même utiliser libv4l avec des astuces LD_PRÉLOAD afin de pouvoir travailler avec des applications compilées sans support libv4l (juste pour vérifier si ma suggestion a du sens)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top