gst と python を使用してビデオチャットを開発しています。ここで、エンド ユーザーの Web カメラを表示したいのですが、自分の Web カメラも 1 つの gtk ウィンドウで表示したいと考えています (共感ビデオ チャットに似ています)。
そのために、gst.Tee オブジェクトを使用して 2 つのキューを作成しました。1 つは結果をローカルの gtk ウィンドウにリンクし、2 番目のキューは同じビデオ ストリームをセッション オブジェクトにリンクします。
gst.Teeはタスクを完了しましたが、ビデオチャットの速度も低下し、ビデオはオーディオよりも遅くなります. (オーディオセッションには別のストリームを使用しました)
ここでは、コード スニペット:
self.pipeline = gst.Pipeline()
bus = self.pipeline.get_bus()
bus.add_signal_watch()
bus.connect('message', self._on_gst_message)
self.src_bin = gst.element_factory_make("autovideosrc", "src")
autovideosinkLocal = gst.element_factory_make("autovideosink", "autovideosinkLocal")
tee = gst.element_factory_make('tee', "tee")
queueLocal = gst.element_factory_make("queue", "queueLocal")
queueSend = gst.element_factory_make("queue", "queueSend")
self.pipeline.add(self.src_bin, tee, queueLocal, autovideosinkLocal, queueSend)
gst.element_link_many(self.src_bin, tee)
tee.link(queueLocal)
queueLocal.link(autovideosinkLocal)
tee.link(queueSend)
queueSend.get_pad('src').link(self.p2psession.get_property('sink-pad'))
self.pipeline.set_state(gst.STATE_PLAYING)
ビデオチャットを高速化するにはどうすればよいですか (たとえば、単一のシンクを使用してアクセプターのビデオのみを表示すると、うまく機能します)?
同じことを行う他の方法はありますか?
ありがとう!