2013-03-22 37 views
0

對於我的項目,我正在嘗試使用帶有gstreamer和TI插件的gumstix overo來利用DSP來通過RTP流式傳輸視頻。我發現這兩個教程和甚至已經能跟着他們成功:對Gstreamer使用GstTIPlugin元素的問題

http://jumpnowtek.com/index.php?option=com_content&view=article&id=81:gumstix-dsp-gstreamer&catid=35:gumstix&Itemid=67

^^在這其中,我能編譯嵌入式Linux操作系統,在GStreamer和GstTIPlugIn元素。在這樣做之後,我能夠將videotestsource成功傳輸到遠程PC。

不過該教程是爲一個CASPA視頻凸輪,我使用本教程中使用的羅技C920臨:

http://www.oz9aec.net/index.php/gstreamer/473-using-the-logitech-c920-webcam-with-gstreamer

^^在這其中我們利用一種C920相機H264的模式。由於V4l2驅動程序不支持此功能,因此我們使用c腳本逐幀捕捉相機並將其流式傳輸至標準輸出。從這裏我們告訴Gstreamer從文件源捕獲,在這種情況下標準在(/ dev/fd/0)中。再次,我能夠成功地完成這一點,並從C920攝像頭流式傳輸,但無需使用TI插件來使用DSP。

現在上的問題:

./capture -c 10000 -o | gst-launch -v -e filesrc location =/dev/fd/0! h264parse! rtph264pay! udpsink主機= 192.168.1.100端口= 4000

^^此命令將運行採集程序,GStreamer的將抓住並利用h264parse管道編碼流視頻(我相信嗎?)

當我更換h264parse與TIplugin從這樣的第一個教程:

./capture -c 10000 -o | gst-launch -v -e filesrc location =/proc/self/fd/0! TIVidenc1 codecName = h264enc engineName = codecServer! rtph264pay! udpsink主機= 192.168.1.100端口= 4000

我得到這個錯誤:

設置管道停頓了一下。 管道預卷... 錯誤:從元/ GstPipeline:pipeline0/GstTIVidenc1:tividenc10:未能創建視頻編碼器:h264enc

額外調試信息: gsttividenc1.c(1584):gst_tividenc1_codec_start():/ GstPipeline:pipeline0/GstTIVidenc1:tividenc10 錯誤:管道不想預卷。 管道設置爲NULL ......

我也試圖保持兩個元素,然後將錯誤說,它不能鏈接到h264parse0 tividenc10

有沒有人曾與GstTIPlugin任何經驗,知道我做錯了什麼? 謝謝

回答

1

你試圖解決什麼問題,究竟是什麼?您是否試圖使用TI的編碼元素對H.264進行編碼?因爲如果我正確地閱讀這一點,'./capture'實用程序已經在H.264中接收幀 - 不需要編碼。

假設我們有這個黃金例子(這對你有用,對吧?):

./capture -c 10000 -o | gst-launch -v -e filesrc location=/dev/fd/0 ! 
h264parse ! rtph264pay ! udpsink host=192.168.1.100 port=4000 

在 'h264parse' 解析一個H.264流成H.264 NAL單元爲RTP水槽的益處。如果這是行得通的,那麼h264parse元素很高興,因爲它從捕獲程序獲取H.264數據。

如果您試圖用TI H.264編碼器元素替換h264parse,那只是令人困惑。再次,我不知道你想要解決什麼問題,所以我可能沒有全部圖像。

如果您還不熟悉它,請了解'gst-inspect'命令。例如,'gst-inspect h264parse'。這將使您瞭解元素可以消費或生成的數據類型。