2017-02-01 4 views
2

Я использую OpenCV для обработки видео для своих исследований. У меня есть версии Python 2.7 и OpenCV 3.2, установленные в Windows 10. Когда я делаю фоновое вычитание на видео в Python с использованием OpenCV, он отлично работает и производит вывод. Однако, когда я пытаюсь сохранить фоновое вычитаемое видео, оно вызывает эту ошибку:Не удалось открыть codec 'libopenh264': Unspecified error

warning: Error opening file (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:779) 
warning: MAH00119.avi (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:780) 
OpenCV: FFMPEG: tag 0x34363258/'X264' is not supported with codec id 28 and format 'h264/raw H.264 video' 

Failed to load OpenH264 library: openh264-1.6.0-win64msvc.dll 
    Please check environment and/or download library: https://github.com/cisco/openh264/releases 

[libopenh264 @ 0000000001f5bf60] Incorrect library version loaded 
Could not open codec 'libopenh264': Unspecified error 

Я обрабатываю видео MP4. И я внимательно следил за инструкциями при установке ffmpeg, например, добавляя путь bin к переменным окружения. Я не знаю, что еще делать. Застрял на этом уже три дня.

Любая помощь была бы высоко оценена! Спасибо заранее!

ответ

2

Сообщение об ошибке, которое вы получаете, говорит, что openCV не может загрузить кодек H264. H264 по умолчанию не устанавливается при установке openCV по умолчанию.

Чтобы добавить кодек H264, загрузите 'openh264-1.6.0-win64msvc.dll.bz2' с https://github.com/cisco/openh264/releases/tag/v1.6.0.

Извлеките файл и переместите извлеченную DLL в тот же каталог, что и ваш файл python. Теперь OpenCV сможет найти DLL и загрузить кодек H264.

Обратите внимание, что в вашем сообщении об ошибке openCV ищет openh264-1.6.0-win64msvc.dll (не удалось загрузить: openh264-1.6.0-win64msvc.dll.bz2), что и было нами предоставлено.

+1

Дополнительные замечания для вашего ответа: согласно \ sources \ 3rdparty \ ffmpeg \ readme.txt, двоичный файл может быть помещен в глобальный системный путь (System32 или SysWOW64) или рядом с бинарниками приложений. При желании вы можете указать полный путь через переменную среды OPENH264_LIBRARY (не OPENH264_LIBRARY_PATH). К сожалению, OpenCV не использует PATH при попытке загрузить этот двоичный файл. – AntonK