Ich versuche, playbin
in einer Anwendung mit meiner eigenen Pipeline zu ersetzen, weil ich Filter zu dem Video hinzufügen müssen. Hier ist, was ich versuchte:gstreamer: keine Ausgabe von benutzerdefinierten Pipeline (ersetzt playbin)
# self.pipeline = gst.ElementFactory.make("playbin", None)
# self.pipeline.set_property("uri", "appsrc://")
self.pipeline = gst.Pipeline.new("player")
source = gst.ElementFactory.make("uridecodebin", "decodebin")
source.set_property("uri", "appsrc://")
self.pipeline.add(source)
aqueue = gst.ElementFactory.make("queue", "aqueue")
aconverter = gst.ElementFactory.make("audioconvert", "aconverter")
asink = gst.ElementFactory.make("autoaudiosink", "audiosink")
self.pipeline.add(aqueue)
self.pipeline.add(aconverter)
self.pipeline.add(asink)
source.link(aqueue)
aqueue.link(aconverter)
aconverter.link(asink)
vqueue = gst.ElementFactory.make("queue", "vqueue")
vconverter = gst.ElementFactory.make("videoconvert", "vconverter")
vsink = gst.ElementFactory.make("autovideosink", "videosink")
self.pipeline.add(vqueue)
self.pipeline.add(vconverter)
self.pipeline.add(vsink)
source.link(vqueue)
vqueue.link(vconverter)
vconverter.link(vsink)
Später schließe ich an die source-setup
Signal der Quelle, und dann zu dem need-data
Signal mit Daten zu füttern. Dies funktioniert mit playbin
, d.h. ein Ausgabefenster öffnet sich und zeigt das Video. Mit meiner benutzerdefinierten Pipeline passiert nichts - kein Fenster ist geöffnet und natürlich kann ich nichts sehen.
Warum ist das so und wie kann ich es beheben?
Ich habe auch versucht, alle Audio-Sachen zu entfernen und nur die Videoelemente zu verwenden, mit dem gleichen Ergebnis. Ich brauche nicht einmal Audio für diese Anwendung.
Linking dynamisch funktioniert gut, sehe ich jetzt ein Ausgabefenster. Die Einstellung von playbin-Eigenschaften funktionierte jedoch noch nicht, aber ich werde das auch tun, nur um zu sehen, welcher Weg für meine Anwendung besser geeignet ist. – Christoph
Überprüfen Sie die Debug-Protokolle, um zu sehen, ob es hilft, das Problem mit der Eigenschaft – thiagoss
debug zu verstehen Ausgabe sagt, dass es keine solche Eigenschaft gibt. Ich denke, das sollte in eine andere Frage gehen. – Christoph