GStreamer和Opencv3 VideoCapture - 打开bin时出错:不允许空管道

时间:2017-05-29 17:38:50

标签: python opencv gstreamer

我已经搜索过,我找不到其他人这个错误所以我在这里!

我在python中使用OpenCV 3.1.0和GStreamer 1.0进行视频/图像处理任务。一切都很完美(过去有多个版本的OpenCV以及GStreamer和ffmpeg),但在按预期运行之前会不断出现错误。

错误如下:

GStreamer: Error opening bin: empty pipeline not allowed  
GStreamer: Error opening bin: empty pipeline not allowed  

由于2次OpenCV调用而发生此错误:

# video_src is a valid .h264 video

# First GStreamer Error
self.cam = cv2.VideoCapture(video_src)

self.operator = BackgroundSubtractor(2000, self.threshold, True)

# Second GStreamer Error
self.operator.model_bg2(video_src)

对于我的生活,我无法理清这个GStreamer错误的原因。我得到这个错误后;但是,OpenCV完全按预期运行,并且没有遇到任何错误。我只在调用cv2.VideoCapture()初始化和BackgroundSubtractor的model_bg2时出错。

欢迎任何想法,建议或问题!

1 个答案:

答案 0 :(得分:0)

似乎OpenCv正试图用Gstreamer而不是FFMPEG打开视频文件。可能你从OpenCv构建中遗漏了FFMPEG。您可能希望重新构建OpenCv,确保FFMPEG的所有子组件都在cmake中标记为YES

--     FFMPEG:         YES
--       codec:        YES     
--       format:       YES     
--       util:         YES         
--       swscale:      YES