2017-05-14 40 views
0

這是管道:打開Gstreamer管道在Opencv 3.1中失敗,但在3.2中正常工作。爲什麼?

const CAP_PIPELINE = 'filesrc location=$pipe' + 
' ! video/x-h264, stream-format=byte-stream, width=800, height=448, framerate=30/1 ! h264parse ' + 
' ! omxh264dec ! videorate drop-only=true ! video/x-raw,framerate=4/1 ! videoconvert ! appsink'; 

OpenCV的代碼基本上是:

VideoCapture cap 
cap.open(pipeline) 

此代碼在OpenCV中3.2工作正常,但在OpenCV中3.1失敗,並在GStreamer的日誌此消息:

 gstbasetransform.c:1346:gst_base_transform_setcaps:<videorate0> transform 
    could not transform 
video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)800, height=(int)448, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)30/1 
    in anything we support 

任何想法這裏的問題是什麼?

感謝您的任何建議/幫助隊友!

+0

是否與gst-launch一起運行的管道? –

+0

也可以嘗試將'videoconvert'放在任何地方。 – Velkan

+0

是的,它確實運行gst-launch – g00dnatur3

回答

0

我通過用3.2版本替換「cap_gstreamer.cpp」的源代碼解決了我的問題...我假設在3.1版本中存在一些錯誤...我做了3.1和3.2的差異,並且不能真的知道錯誤在哪裏...

相關問題