OpenCV 2.4 VideoCapture не работает в Windows
Я использую привязки Python к OpenCV 2.4, установленным со следующими инструкциями.
Моя проблема аналогична этой, но мне нужно решение для Windows.
Проблема: когда я пытаюсь использовать
cap = cv2.VideoCapture(0)
print cap.grab()
он работает нормально, но следующий код
cap = cv2.VideoCapture(filename)
print cap.grab()
всегда возвращайте False.
Путь к файлу правильный, абсолютный и не имеет пробелов.
Я пробовал на двух машинах с Windows XP и Windows 7 с аналогичными результатами. В Linux (Ubuntu) он отлично работает для меня.
Ответы
Ответ 1
Добавьте C:\OpenCV\3rdparty\ffmpeg\
в переменную среды Windows PATH или скопируйте opencv_ffmpeg.dll
из этого каталога в C:\Python27\
или в каталог, который находится в PATH. Кроме того, используйте двоичные файлы OpenCV из http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv.
Также может потребоваться переименование файла opencv_ffmpeg.dll
.
Для версии OpenCV X.Y.Z
opencv_ffmpeg.dll
== > opencv_ffmpegXYZ.dll
Для 64-битной версии OpenCV X.Y.Z
opencv_ffmpeg.dll
== > opencv_ffmpegXYZ_64.dll
Ответ 2
Копировать opencv_ffmpeg.dll было недостаточно для меня - мне пришлось переименовать его в opencv_ffmpeg246.dll, когда я использовал OpenCV 2.4.6 с Python 2.7.5
Ответ 3
Сначала я попробовал копирование, а затем изменил среду окружения Windows. Это не сработало, пока я не изменил имя на opencv_ffmpeg245.dll для моего openCV версии 2.4.5 и python 2.7. (извещение ** 245.dll из opencv версии 2.4.5)
Ответ 4
Для 64-разрядных версий переименуйте opencv_ffmpeg_64.dll в opencv_ffmpeg249_64.dll. Измените 249 на вашу версию opencv.
Ответ 5
Для OpenCV 3.0.0 на 64-битной среде скопируйте файл opencv_ffmpeg_64.dll и переименуйте его в opencv_ffmpeg300_64.dll.
Также добавьте этот путь к переменной среды PATH, чтобы он работал с OpenCV под Java.
Ответ 6
Обновление: это все еще верно для OpenCV 2.4.9, скопировать все файлы и переименовать dll opencv_ffmpeg249.dll
Ответ 7
У меня была такая же проблема с python 2.7 и opencv 2.4.10. Я скопировал файл opencv_ffmpeg2410_64.dll из C:\Applications\opencv\build\x64\vc10\bin в путь python (мой находится в C:\Users\mohammad\Anaconda), и он был решен!
Ответ 8
Сначала я использую windows8.1 32bit и opencv 2.4.10.
Я столкнулся с такой же проблемой, чтобы использовать файл test1.wmv
, который был создан Logicool C270.
Я попытался использовать другой файл test2.mov
, который был сделан цифровой камерой (Canon SX160).
Поэтому я могу сыграть test2.mov
, чтобы добавить путь C:\opencv\build\x86\vc12\bin
.
Но я не могу играть test1.wmv.
Поэтому я пытаюсь изменить формат test1.wmv на test1a.mp4 с помощью VLC (до Video for youtube HD
).
Тогда я могу играть test1a.mp4.
Я пробовал test1.wmv
на Ubuntu 14.04 LTS, тогда я могу играть легко.
Может возникнуть некоторая разница в двоичном файле ffmpeg по умолчанию между windows8.1 и Ubuntu 14.04 LTS.
Ответ 9
Для среды anaconda
скопируйте opencv_ffmpeg249_64.dll из C:\Python27 \
переименуйте его версию в соответствии с вашей версией opencv
и мимо него
C:\Users\KHALID\Anaconda2\Library\Bin