不能将videotestsrc和uridecodebin与GStreamer / videomixer混合使用

时间:2012-09-13 03:04:31

标签: gstreamer

如何将实时源和非实时源与GStreamer videomixer插件混合使用?

Gst-launch在混合uridecodebin(某些mpeg视频)& videotestsrc

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

1 个答案:

答案 0 :(得分: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,width = 704,height = 576! videorate force-fps = -1!排队! mix.sink_0 videotestsrc! video / x-raw-yuv,width = 352,height = 288,format =(fourcc)I420!时间延迟!排队! mix.sink_1