2017-05-29 1 views
0

J'ai recherché et cherché et je ne trouve personne d'autre avec cette erreur alors je suis là! J'utilise OpenCV 3.1.0 et GStreamer 1.0 en python pour des tâches de traitement d'image/vidéo. Tout fonctionne parfaitement (et a pour plusieurs versions d'OpenCV dans le passé et à la fois GStreamer et ffmpeg), mais donne toujours une erreur avant de fonctionner comme prévu.GStreamer et Opencv3 VideoCapture - Erreur lors de l'ouverture de la corbeille: le pipeline vide n'est pas autorisé

L'erreur est la suivante:

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

Cette erreur se produit en raison de 2 appels 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) 

Pour la vie de moi je ne peux pas isoler la cause de cette erreur GStreamer. Après avoir reçu cette erreur cependant, OpenCV fonctionne complètement comme prévu et ne rencontre aucune erreur. Je reçois seulement une erreur sur les appels à l'initialisation cv2.VideoCapture() et au model_bg2 de BackgroundSubtractor.

Toutes les idées, suggestions ou questions sont les bienvenues!

Répondre

0

Il semble que OpenCv essaie d'ouvrir le fichier vidéo avec Gstreamer au lieu de FFMPEG. Probablement, vous manquez FFMPEG de votre build OpenCv. Vous pourriez vouloir reconstruire OpenCv en vous assurant que tous les sous-composants de FFMPEG sont marqués YES dans cmake.

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