2014-04-25 19 views
2

問題解析幀

我工作的一個項目,需要我來分析框架,並在大約爲10Hz從做樹莓派相機一些很簡單的圖像處理。

我試過使用raspistill和raspiyuv(原始的靜止)應用程序來生成圖像,但是他們都沒有能夠達到我正在尋找的10Hz幀速率(即使在低分辨率的128x64這就是我需要,在timelapse模式下,它說的是~1/2每秒圖像,延時設置爲100ms)。

raspivid應用程序允許我以高於必要的10幀/秒的速度輸出視頻,但是我不確定從.h264流獲取圖像處理幀的最佳方式。

我看什麼在

我發現Capturing jpegs from an h264 stream with gstreamer on a Raspberry Pi如果有人設法以1Hz使用的GStreamer的.h264攝像頭流,這將表明它可以簡單地解析使用的GStreamer原始幀得到JPEG文件。

我試着複製完成了什麼,但是當我嘗試調用他的未修改的管道時,爲了確保它在正在嘗試修改之前正常工作,它給了我一個從videorate0鏈接到jpegenc0的管道錯誤。

問題

就是我試圖利用可能的GStreamer和可用的插件(或者我應該看看其他工具,如ffmpeg的)?如果是這樣,任何人都可以提供協助,讓這項工作?最後,是否有可能進一步使用此工具將這些原始幀直接導入c程序進行解析? (可能通過使用!文件接收位置=的/ dev /標準輸出?)

+0

你使用的是gstreamer 0.10還是1.0? –

+0

@MarkTolley我相信我使用的是gstreamer 1.0,但我應該注意到我使用gstreamer並不是很有經驗,所以我使用了[this](http://pastebin.com/u8T7mE18)pastebin中的構建腳本,它似乎運行正常,並安裝所需的插件等。這可能會過時? – noudyk

+0

您是否找到了解決方案? – eried

回答

0

@MarkTolley我相信我的GStreamer使用1.0,但我要指出,我沒有使用GStreamer的經驗非常豐富,所以我的構建這個pastebin中的腳本似乎運行正常,並安裝所需的插件等。這可能會過時嗎?

它已經過時了,但它仍然是gstreamer-1.0。由於1.1.x中的錯誤,看起來腳本正在使用1.0.x分支。不幸的是,我不知道這個bug是否在1.2.x中得到修復。

通過郵件列表挖後跟帖的作者鏈接,我發現,他終於得到了它的工作職位:http://gstreamer-devel.966125.n4.nabble.com/Capturing-jpegs-from-an-h264-stream-tp4660254p4660459.html

raspivid -n -t 1000000 -vf -b 2000000 -fps 25 -o - | gst-launch-1.0 fdsrc ! video/x-h264,framerate=25/1,stream-format=byte-stream ! decodebin ! videorate ! video/x-raw,framerate=10/1 ! videoconvert ! jpegenc ! multifilesink location=img_%04d.jpg 

嘗試,他在該職位中使用流水線。如果您仍然遇到問題,我建議發佈到郵件列表或訪問IRC頻道,因爲這些地方比SO更好地排除故障。


我會盡力回答您的原始帖子的其他問題:

就是我試圖利用可能的GStreamer和可用的插件

絕對! Gstreamer還支持rpi上的硬件編碼/解碼h264,我不知道其他工具是否有。

最後,將有可能進一步使用這個工具來管這些原始幀直接進入AC程序解析

我看到你已經在使用fdsrc,有相應的fdsink能寫入標準輸出。

但是,如果您要編寫一個C程序,最好實施appsink並將gstreamer feed緩衝區直接添加到您的代碼中。