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 !ffmpeg色彩空间!autovideosink uridecodebin uri=file:///media/sf_share/test.mpg !时间叠加!视频缩放!视频/x-raw-yuv,宽度=704,高度=576!videorate force-fps=-1 !队列 !mix.sink_0 videotestsrc !视频/x-raw-yuv,宽度=352,高度=288,格式=(fourcc)I420!时间叠加!队列 !mix.sink_1

于 2012-09-15T01:48:34.500 回答