2017-08-28 87 views
0

我正在尝试实现一个采用实时相机流,覆盖一些文本和符号(使用Alpha通道透明)的系统;并通过RTP/UDP将其作为单个视频(从一个端口)传输。主机和客户机系统都启动了i.MX6QP。目前,我正在试图用gst-launch来计算GStreamer和流水线系统,并且只使用测试模式作为视频源。通过RTP流式传输重叠视频

下面是一个简单的图来展示一下我想要实现:
enter image description here

我已经看到了videomixer插件,但是从我的理解,它仅用于叠加和播放视频 ,而不是用于创建“可传输”的视频流。 (我可以使用它与xvimagesink,但我无法实现与udpsink管道,我找不到解决方法。)

我一直没能找到正确的工具/方法来实施上述系统。我对的是videomixer插件吗?如果是这样,你建议我做什么?任何帮助表示赞赏,在此先感谢。

+0

三角形和圆形视频的本质是什么:RAW,压缩? (因为你正在使用'videotestsrc',所以我猜它现在是RAW了) – Ahresse

+0

你说得对,他们现在是RAW。 – ddyn

回答

1

如果你正在处理的I.MX6流,你应该看看imxg2dcompositor插件在gstreamer-imx

gst-inspect-1.0 imxg2dcompositor 

从他们的榜样,你可以尝试这样的:

gst-launch-1.0 \ 
    imxg2dcompositor name=c background-color=0x223344 \ 
     sink_0::xpos=0 sink_0::ypos=90 sink_0::width=160 sink_0::height=110 sink_0::zorder=55 sink_0::fill_color=0xff00ff00 sink_0::alpha=0.39 sink_0::rotation=0 \ 
     sink_1::xpos=0 sink_1::ypos=20 sink_1::width=620 sink_1::height=380 sink_1::fill_color=0x44441133 ! \ 
    queue2 ! "video/x-raw, width=800, height=600" ! imxipuvideotransform ! imxvpuenc_h264 ! rtph264pay ! udpsink \ 
    videotestsrc pattern=0 ! "video/x-raw, framerate=30/1" ! c.sink_0 \ 
    videotestsrc pattern=18 ! "video/x-raw, framerate=30/1" ! c.sink_1 

我建议您不要错过视频编码部分,这在尝试设置视频流应用程序时很重要(H.264编码插件是imxvpuenc_h264)。该编码步骤之后是特定的RTP付费加载器。

+0

好的,它更容易理解你的图:) – Ahresse

+1

对不起,我上周没有访问板,所以我刚刚尝试过你的管道。它给出错误,说“警告:错误的管道:无法将队列2-0链接到imxvpuh264enc0”。在编码器解决此问题之前添加imxipuvideotransform元素。非常感谢你的帮助! – ddyn