在Opencv 3.1中打开Gstreamer管道失败但在3.2中工作正常..为什么?

时间:2017-05-14 08:54:44

标签: opencv gstreamer gstreamer-1.0

这是管道:

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

任何想法在这里是什么问题?

感谢任何建议/帮助伙伴!

1 个答案:

答案 0 :(得分:0)

我通过用3.2版本替换“cap_gstreamer.cpp”的源代码来解决我的问题...我假设3.1版本中有一些错误...我做了3.1和3.2的差异并且不能真的告诉bug在哪里......