[Python-es] Pygame + webcam

lopz lowlifebob en gmail.com
Jue Feb 3 18:08:04 CET 2011


Hola
No sé si preguntar aquí o en la lista de pygame, pero aquí estoy :)
Ya.. el problema que tengo es que no puedo usar la webcam con pygame
a continuación pego líneas que explicaran por su solas mi problema y
además mejor que yo.

######################### SOURCE CODE ###############################
import pygame
import pygame.camera

pygame.init()

class VideoCapturePlayer(object):
    displaysize = (1024, 768)
    capturesize = ( 320, 240 )
    mirror = True
    delay = 0
    def __init__(self, **argd):
        self.__dict__.update(**argd)
        super(VideoCapturePlayer, self).__init__(**argd)
        self.display = pygame.display.set_mode( self.displaysize )
        pygame.camera.init()
        self.camera = X=pygame.camera.Camera("/dev/video0", self.capturesize)
        print pygame.camera.list_cameras()
        self.camera.start()

    def get_and_flip(self):
        snapshot = self.camera.get_image()
        snapshot = pygame.transform.scale(snapshot,(512,384))
        if self.mirror:
            flippedx = pygame.transform.flip(snapshot,1,0)
            flippedy = pygame.transform.flip(snapshot,0,1)
            flippedxy = pygame.transform.flip(snapshot,1,1)
        self.display.blit(flippedy, (0,384))
        self.display.blit(flippedxy, (512,384))
        self.display.blit(snapshot, (0,0))
        self.display.blit(flippedx, (512,0))
        pygame.display.flip()

    def main(self):
        while 1:
            time.sleep(self.delay)
            self.get_and_flip()

VideoCapturePlayer().main()

############## error output ###############

['/dev/video0', '/dev/video1']
Traceback (most recent call last):
  File "pygameTest.py", line 59, in <module>
    VideoCapturePlayer().main()
  File "pygameTest.py", line 39, in __init__
    self.camera.start()
SystemError: ioctl(VIDIOC_S_FMT) failure: no supported formats

################### LUSB  COMMAND  OUTPUT ############################

Bus 005 Device 003: ID 0ac8:303b Z-Star Microelectronics Corp. ZC0303 Webcam
Bus 002 Device 007: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 Webcam

################ FORMAR SUPPORT #####################

lopz en tnt ~ $ luvcview -d /dev/video1 -L
luvcview version 0.2.1
Video driver: x11
A window manager is available
video /dev/video1
{ pixelformat = 'JPEG', description = 'JPEG' } <- por lo que veo solo
soporta JPEG ¿pero qué necesita pygame?
{ discrete: width = 320, height = 240 }
	Time interval between frame:
{ discrete: width = 640, height = 480 }
	Time interval between frame:

##################### PYTHON - PYGAME versions ###################

Python 2.6.6 (r266:84292, Jan 22 2011, 14:03:40)

[I] dev-python/pygame
     Available versions:  1.9.1 {X doc examples}
     Installed versions:  1.9.1(17:52:41 21/09/10)(X examples -doc)


Entiendo el error pero no se cómo solucionarlo (si es que se puede) o
estoy capado por hardware?
Es que con estas webcams puedo usarlas en cualquier aplicación y no se
quejan de formatos ni na
Tengo que darle soporte de alguna forma a pygame o a alguna
dependencia para soportar ese formato?

Desde ya muchas gracias

SaludoS!
-- 
lopz es libre, usa --> GNU/linux gentoo

+--[RSA 2048]--+
|  ..o.o=+       |
|   o =o*.+      |
|  . . *oO .      |
|     .EBoo      |
|      o.S         |
+--[lopz.org]--+


Más información sobre la lista de distribución Python-es