2013-11-21 7 views
1

Я выполнил these инструкции по установке opencv для python (т. Е. Копирование файла pyd в пакеты сайта). Он отлично работает, за исключением OpenCV не может открыть любые видео файлов, я пытаюсь открыть:opencv codecs под Windows

capture = cv2.VideoCapture("some_file.avi") 
capture.isOpened() # False 

Я попробовал видео с h264 и mpeg2 кодировками без успеха. Windows 7 x64, 32bit Python 2.7.5 и opencv 2.4.7. Так что предположительно это означает, что opencv не может найти нужные кодеки, но я убедился, что opencv_ffmpeg247.dll находится на пути.

+0

Это решило мою проблему: http://stackoverflow.com/questions/11699298/opencv-2-4-videocapture-not-working-on-windows – Paul

ответ

1

Установите newest FFmpeg available из хранилища:

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg 

вы установили версию, вероятно, не совместим с OpenCV 2.4.7. Самый простой способ проверить эту гипотезу - перейти на OpenCV до версии 2.4.5.

И помните: cv2.VideoCapture("some_file.avi") будет успешным, только если some_file.avi находится в той же директории, что и ваш исходный код. Если это не так, вы должны использовать полный путь к файлу!

Я хочу процитировать another post из этого форума:

Причиной вашей проблемы может быть ошибка # 2281: VideoCapture::read fails on uncompressed video.

В любом случае, пожалуйста, попробуйте OpenCV 2.4.5 и сообщите нам, если он сработает.

+0

Да, я ожидал бы вызова, который должен открыть только файл для успеха, если файл на самом деле там;) (более серьезно: обычные вызовы open() работают нормально, и я тоже пробовал абсолютные пути). Я использую ffmpeg dll, который поставляется с opencv, так почему бы не сработать, когда самые новые будут успешными? Не стоит с нетерпением ожидать компиляции любой более крупной библиотеки C под окнами, если нет действительно веской причины, почему это должно помочь. – Voo

+0

Самый простой путь - вернуться к 2.4.5. Сделайте это и расскажите мне, как это произошло. ;) – karlphillip

+0

Видимо ошибка в opencv 2.4.7. Он поставляется с dll ffmpeg, который несовместим с его отправленным модулем python. Я предполагаю, что я должен записать ошибку для этого * sigh *, вернувшись к 2.4.5, исправил проблему. Обычная щедрость - награда вознаграждается, как только SO позволяет мне. – Voo

Смежные вопросы