2017-05-29 2 views
0

Ich habe gesucht und gesucht und ich kann niemand anderen mit diesem Fehler finden, also hier bin ich!GStreamer und Opencv3 VideoCapture - Fehler beim Öffnen bin: leere Pipeline nicht erlaubt

Ich verwende OpenCV 3.1.0 und GStreamer 1.0 in Python für Video-/Bildverarbeitungsaufgaben. Alles funktioniert perfekt (und hat für mehrere Versionen von OpenCV in der Vergangenheit und sowohl GStreamer als auch ffmpeg) aber gibt kontinuierlich einen Fehler, bevor es wie vorgesehen funktioniert.

Der Fehler ist wie folgt:

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

Dieser Fehler tritt wegen 2 OpenCV Anrufe:

# 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) 

Für das Leben von mir kann ich nicht die Ursache dieses GStreamer Fehler isolieren. Nachdem ich diesen Fehler erhalten habe; OpenCV funktioniert jedoch vollständig wie erwartet und es treten keine Fehler auf. Ich bekomme nur einen Fehler beim Aufruf von cv2.VideoCapture() Initialisierung und BackgroundSubtractor's model_bg2.

Alle Ideen, Vorschläge oder Fragen sind willkommen!

Antwort

0

Offenbar versucht OpenCv, die Videodatei mit Gstreamer anstelle von FFMPEG zu öffnen. Vermutlich fehlt FFMPEG von Ihrem OpenCv-Build. Vielleicht möchten Sie OpenCv neu erstellen, indem Sie sicherstellen, dass alle Unterkomponenten von FFMPEG in cmake als YES markiert sind.

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