2014-03-25 22 views
-3

我想製作一個GStreamer應用程序,它將圖像數據作爲源代替文件位置。我的意圖是顯示通過tcp收到的圖像。當tcp獲得一個圖像數據(字節數組)時,它應該直接將數據傳遞給gstreamer插件,並將其保存在本地。圖像數據作爲源gstreamer

+0

這不是很清楚你的問題是什麼。你有嘗試過什麼嗎?你遇到了什麼問題? –

+0

我的意圖是將圖像字節數組直接提供給gstreamer源代替圖像位置。對不清楚的問題抱歉。 – Rajesh

+0

請編輯你的問題:添加更多的細節,一些例子或用例。我將投票重新開放,並很樂意回答。 –

回答

2

該multifilesrc應該做的工作。

說明

讀取順序命名文件的緩衝區。如果與 圖像解碼器一起使用,則需要使用「caps」屬性或capsfilter強制包含幀率的上限。否則圖像解碼器會在第一張圖片後發送EOS 。我們還需要一個videorate元素,根據 的幀率,在第一個緩衝區之後的所有緩衝區上設置 時間戳。

通過使用 printf()替換「%d」來創建文件名。

例發射線

gst-launch-1.0 multifilesrc location="img.%04d.png" index=0 caps="image/png,framerate=\(fraction\)12/1" ! \ 
    pngdec ! videoconvert ! videorate ! theoraenc ! oggmux ! \ 
    filesink location="images.ogg" 

該管道通過連接多個 命名img.0000.png,img.0001.png PNG文件創建視頻文件 「images.ogg」 等

來源:http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-multifilesrc.html

所以,如果你使用命令行gstreamer這應該做的伎倆。 您只需在文件收到時指定文件和「循環」。

否則,編寫一個使用multifilesrc作爲源的gstreamer管道並不複雜。

+0

謝謝你的答案...我可以給一個字節數組而不是圖像位置 – Rajesh