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)
その後、ソースのsource-setup
信号に接続し、次に信号に接続しneed-data
てデータを供給します。これは で機能しplaybin
ます。つまり、出力ウィンドウが開き、ビデオが表示されます。私のカスタム パイプラインでは何も起こりません。ウィンドウは開かれず、もちろん何も見えません。
それはなぜですか、どうすれば修正できますか?
また、すべてのオーディオ要素を削除して、ビデオ要素のみを使用しようとしましたが、同じ結果が得られました。このアプリケーションにオーディオは必要ありません。