web-dev-qa-db-fra.com

OpenCV 2.4 VideoCapture ne fonctionne pas sous Windows

J'utilise les liaisons Python à OpenCV 2.4 installées avec les instructions suivantes .

Mon problème est similaire à this one , mais j'ai besoin d'une solution de machine Windows.

Problème: quand j'essaie d'utiliser 

cap = cv2.VideoCapture(0)
print cap.grab()

cela fonctionne bien, mais le code suivant

cap = cv2.VideoCapture(filename)
print cap.grab()

retourne toujours False. 

Le chemin d'accès au fichier est correct, absolu et ne contient aucun espace.

J'ai essayé sur deux machines avec Windows XP et Windows 7 avec des résultats similaires. Sous Linux (Ubuntu), cela fonctionne bien pour moi.

45
Bihaqo

Ajoutez C:\OpenCV\3rdparty\ffmpeg\ à la variable d'environnement Windows PATH ou copiez opencv_ffmpeg.dll de ce répertoire dans C:\Python27\ ou dans un répertoire qui se trouve dans PATH. Vous pouvez également utiliser les binaires OpenCV de http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv .

Renommer le fichier opencv_ffmpeg.dll peut également être nécessaire.

Pour OpenCV version X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

Pour la version OpenCV 64 bits X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

70
cgohlke

Copier opencv_ffmpeg.dll ne me suffisait pas - je devais le renommer opencv_ffmpeg246.dll, lorsque j’utilisais OpenCV 2.4.6 avec Python 2.7.5

28
Eran Marom

J'ai d'abord essayé de copier, puis de changer l'environnement Path de Windows .. cela ne fonctionnait pas avant d'avoir changé le nom d'opencv_ffmpeg245.dll pour mon openCV version 2.4.5 et python 2.7. (notice ** 245.dll provient de la version 2.4.5 d’opencv)

10
SanD

Pour les versions 64 bits, renommez opencv_ffmpeg_64.dll en opencv_ffmpeg249_64.dll Remplacez 249 par votre version opencv.

8
user3738775

Pour OpenCV 3.0.0 dans un environnement 64 bits, copiez opencv_ffmpeg_64.dll et renommez-le en opencv_ffmpeg300_64.dll.

Ajoutez également ce chemin à votre variable d’environnement PATH pour qu’il fonctionne avec OpenCV sous Java.

6
masewo

Mise à jour: Ceci est toujours vrai pour OpenCV 2.4.9, copiez tous les fichiers et renommez la dll opencv_ffmpeg249.dll.

5
bw4sz

J'ai eu le même problème avec python 2.7 et opencv 2.4.10. J'ai copié le fichier opencv_ffmpeg2410_64.dll de C:\Applications\opencv\build\x64\vc10\bin dans le chemin python (le mien est situé à C:\Users\mohammad\Anaconda) et le problème a été résolu!

4
user1947921

Au début, j'utilise windows8.1 32bit et opencv 2.4.10.
J'ai rencontré le même problème pour utiliser le fichier test1.wmv créé par Logicool C270.
J'ai essayé d'utiliser un autre fichier test2.mov créé par l'appareil photo numérique (Canon SX160) . Je peux donc jouer test2.mov pour ajouter le chemin C:\opencv\build\x86\vc12\bin.
Mais je ne peux pas jouer test1.wmv.
Alors, j'essaie de changer le format test1.wmv en test1a.mp4 en utilisant VLC (en Video for youtube HD).
Alors je peux jouer test1a.mp4.
J'ai essayé test1.wmv sur Ubuntu 14.04 LTS, alors je peux jouer facilement.
Il peut se produire une différence sur le fichier binaire ffmpeg par défaut entre Windows8.1 et Ubuntu 14.04 LTS.

3
user

Pour l'environnement anaconda Copiez opencv_ffmpeg249_64.dll à partir de C:\Python27\ Renommez sa version en fonction de votre version correcte Et collez-la en C:\Utilisateurs\KHALID\Anaconda2\Library\bin

0
Khalid Bin Huda