Сборка opencv с поддержкой ffmpeg
Я прочитал почти все вопросы по этой теме, но я не решил ее. Я много раз устанавливал OpenCV в виртуальной среде, пытаясь решить эту проблему. Проблема в том, что: "cv2.videoCapture() всегда возвращает false".
Я построил OpenCV с опцией -D WITH_FFMPEG=ON, и он будет успешно завершен, и результат с FFmpeg, похоже, будет в порядке.
Кроме того, когда я запускаю команду " make -j8 ", она завершается без проблем. Поэтому я думал, что все будет хорошо. Когда я попытался проверить поддержку FFmpeg с помощью этой команды: python -c "import cv2; print(cv2.getBuildInformation())" | grep -i FFmpeg
это не дало мне никакого результата.
Я установил OpenCV, выполнив следующие действия. Я также попытался выяснить, поддерживает ли FFMPEG кодек для декодирования AVC-кодированных файлов. ffmpeg -codecs | grep -i avc
и вывод:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 часть 10 (декодеры: h264 h264_cuvid) (кодеры: h264_nvenc nvenc nvenc_h264) DAL avc On2 Audio для видеокодека (декодеры: on2avc)
Я не понимал, почему FFmpeg показался "ДА", когда у меня в то время была сборка OpenCV, которая дала "НЕТ" результат cv2.getBuildInformation().
(cv_env)➜ cv_env pkg-config --modversion opencv
3.2.0
(cv_env)➜ cv_env python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.3.0'
(cv_env)➜ cv_env python -c "import cv2; print(cv2.getBuildInformation())" | grep -i ffmpeg
FFMPEG: NO
(cv_env)➜ cv_env python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__file__
'/opt/cv_env/local/lib/python2.7/site-packages/cv2/cv2.so'
(cv_env)➜ cv_env python3
Python 3.4.3 (default, Nov 28 2017, 16:41:13)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.3.0'
>>> cv2.__file__
'/usr/local/lib/python3.4/dist-packages/cv2/cv2.cpython-34m.so'
Кроме того, я не помню, какие шаги я применял (для python2 или python3). По этой причине я добавил версии и пути cv2. Я проверил cv2. версия после импорта cv2, и кажется, что '3.3.0' также приводит к такому результату. Я клонировал OpenCV из GitHub, как эти шаги, которые я дал URL на мой вопрос. После выполнения этих шагов, версия должна быть 3.3.1, но она все еще кажется 3.3.0. Если я импортировал готовый OpenCV, как я могу это исправить? В моей виртуальной среде есть только один каталог OpenCV, и я думаю, что это последний, который я установил.
Похоже, я запускаю Python2, на котором установлена другая версия OpenCV, а не 3.3.1. Как я могу это исправить?