2015-01-14 3 views
1

Я столкнулся с той же проблемой, с которой сталкиваются многие другие люди с openCV, в том случае, когда я использую следующий код, openCV не может записать видеофайл. Я использую openCV 2.4.10 и питон 2,7OpenCV VideoWriter Автоматический выбор кодека

out = cv2.VideoWriter('C:\motion\output.avi',cv2.cv.CV_FOURCC('X','V','I','D'), 20, (640,480),True) 

жизнеспособные Обходной заменить второй аргумент с -1, что дает всплывающее окно с кодированным выбором при запуске программы. когда один из них выбран, видео создаются.

Проблема заключается в том, что я добавляю ее в программное обеспечение для обнаружения движения, которое записывает 15-секундный файл с отметкой времени каждый раз, когда он обнаруживает движение, и, очевидно, s выбор кодека вручную не работает с этой схемой.

Есть ли способ открыть openCV для выбора одного из этих кодеков с помощью VideoWriter или какого-либо другого метода?

ВЕЩИ Я Пытались УЖЕ: копирование opencv_ffmpeg.dll в папку питона и выбора FMP4 кодека от Fourcc

+0

обратите внимание, что всплывающее окно является функцией VFW, и будет работать только на окнах. – berak

ответ

0

В то время как я не нашел альтернативный способ выбора доступны кодеки, я нашел ответ на лежащий в основе проблема openCV не обнаруживает собственные кодеки (что хорошо, потому что кодеки Windows производят файлы размером ~ 50 раз больше, чем созданные кодеком fmp4).

Доступ к кодекам, скопируйте файлы из папки opencv \ sources \ 3rdparty \ ffmpeg в папку python27, а затем измените имена из opencv_ffmpeg.dll на opencv_ffmpegXYZ.dll, где XYZ = ваша версия openCV. Например, у меня есть openCV 2.4.10, поэтому я изменил его на opencv_ffmpg2410.dll. Дополнительные примеры можно найти по этому вопросу.

OpenCV 2.4 VideoCapture not working on Windows

+0

Размер фрейма должен быть 640x480, чтобы соответствовать размеру, указанному в 'cv2.VideoWriter()'. – karlphillip

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