Seite 1 von 1

Gstreamer mit Pygame verbinden

Verfasst: Dienstag 17. August 2010, 10:39
von majinv
Aloah zusammen,

ich möchte mir den webcam Stream anzeigen lassen, allerdings möchte ich ebenfalls
das er mir den Stream innerhalb meines Fenstes aufmacht, ich hab gefunden wie es in GTK
funktioniert, für PyGame habe ich jedoch keine alternative Lösung gefunden.

Code: Alles auswählen

import pygame
import pygst
pygst.require("0.10")
import gst

class VideoStream():
    
    def __init__(self):
        pygame.init()
        self.init_surface()
        self.player = gst.parse_launch ("v4l2src ! autovideosink")
        self.run()
        
    def init_surface(self):
        self.WIDTH = 1000
        self.HEIGHT = 500
        window = pygame.display.set_mode((self.WIDTH, self.HEIGHT))
        pygame.display.set_caption('TESTTESTTESTTESTTESTTEST')
        self.screen = pygame.display.get_surface()
        background = pygame.Surface((self.WIDTH,self.HEIGHT))
            
    def run(self):
        while True:
            self.player.set_state(gst.STATE_PLAYING)
            #self.screen.blit(self.player, (0,0))
            #pygame.display.flip()


VideoStream()
    
Die beiden auskommentierten Zeilen funktionieren logischerweise nicht, da es sich um ein gstreamer objekt handelt...
Fällt jemandem ein workaround ein durch den ich mir das fenster doch noch innerhalb meines erzeugten PyGame fensters anzeigen lassen kann?

Über Hilfe würde ich mich freuen... ;)

Grüße Majin

Re: Gstreamer mit Pygame verbinden

Verfasst: Dienstag 17. August 2010, 12:56
von Wendigo
Mit gstreamer hab ich mich leider bisher noch nicht befasst aber du könnstest das ganze auch komplett in pygame realisieren mit dem Camera Modul.
Hat allerdings noch experimentellen Status.

Re: Gstreamer mit Pygame verbinden

Verfasst: Dienstag 17. August 2010, 15:04
von majinv
Danke... :)
allerdings wollte ich das eigentlich vermeiden, ich hab das ganze auch schon mit opencv direkt gemacht, aber es gibt noch
andere programme die bei mir darauf laufen und die müsste ich dann portieren und da hab ich ehrlich gesagt weniger lust zu...

ich könnte aus jedem frame ein bild machen... allerdings finde ich die to.string methode von dem gst objekt nicht oO
also in der doku hab ichs gefunden, allerdings sagt der compiler das objekt hätte sowas nicht -.-

Re: Gstreamer mit Pygame verbinden

Verfasst: Dienstag 17. August 2010, 16:18
von majinv
So sollte der Code in etwa aussehen...
allerdings bin ich immernoch nicht auf die entscheidenen Quellen gestoßen -.-

Code: Alles auswählen

    def run(self):
        while True:
            self.player.set_state(gst.STATE_PLAYING)
            pg_img = pygame.image.frombuffer(self.player.yxc , self.player.yxc, self.player.yxc)
            self.screen.blit(pg_img, (0,0))
            pygame.display.flip()