2017-08-28 90 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