0

GStreamer videomixer プラグインを使用してライブ ソースと非ライブ ソースをミックスする方法は?

uridecodebin (一部の mpeg ビデオ) と videotestsrc を混合すると、Gst-launch で何も表示されない

gst-launch \
videomixer name=mix sink_0::zorder=0 sink_1::zorder=1 ! ffmpegcolorspace ! autovideosink \
uridecodebin uri=file:///test.mpg ! timeoverlay ! videoscale ! video/x-raw-yuv,width=704 ,height=576 ! queue ! mix.sink_0 \
videotestsrc ! video/x-raw-yuv, width=176,height=144 ! queue ! mix.sink_1

しかし、両方のソースを mpeg ビデオに変更すると機能します。

gst-launch 
videomixer name=mix sink_0::zorder=0 sink_1::zorder=1 ! ffmpegcolorspace ! autovideosink 
uridecodebin uri=file:///test.mpg ! timeoverlay ! videoscale ! video/x-raw-yuv,width=704 ,height=576 ! queue ! mix.sink_0 
uridecodebin uri=file:///test.mpg ! timeoverlay ! videoscale ! video/x-raw-yuv,width=176,height=144 ! queue ! mix.sink_1
4

1 に答える 1

0

私はばかげた間違いをしたようです。上記のコマンドとテスト済みのビデオ クリップを使用すると、異なるビデオ フォーマットが出力されます。videotestsrc のビデオ形式を強制的に I420 にすると、正常に動作します。

混合するコマンドは次のとおりです。

gst-launch -v videomixer name=mix sink_0::zorder=0 sink_1::zorder=1 ! ffmpegcolorspace ! autovideosink uridecodebin uri=file:///media/sf_share/test.mpg ! タイムオーバーレイ!ビデオスケール!video/x-raw-yuv、幅=704、高さ=576 ! videorate force-fps=-1 ! 列 !mix.sink_0 videotestsrc ! video/x-raw-yuv,width=352,height=288,format=(fourcc)I420 ! タイムオーバーレイ!列 !mix.sink_1

于 2012-09-15T01:48:34.500 に答える