使用 ffmpeg 支持构建 opencv

使用 ffmpeg 支持构建 opencv

我几乎读完了所有关于这个问题的答案,但还是没能解决。为了解决这个问题,我多次在虚拟环境中安装了 OpenCV。P问题是:“cv2.videoCapture() 总是返回 false”。

我使用以下代码构建了 OpenCV:-D WITH_FFMPEG=ON选项,它将成功完成,并且关于 FFmpeg 的结果似乎还不错。

另外,当我运行“制作-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 part 10 (解码器:h264 h264_cuvid) (编码器:h264_nvenc nvenc nvenc_h264) DAL avc On2 音频视频编解码器 (解码器:on2avc)

我不明白为什么当我构建 OpenCV 时,FFmpeg 似乎显示“YES”,而使用 cv2.getBuildInformation() 时却给出了“NO”的结果。

(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' 也会出现类似的 pip 冻结结果。我按照以下步骤从 github 克隆了 OpenCV,并将 url 提供给了我的问题。按照这些步骤操作后,版本应该是 3.3.1,但看起来仍然是 3.3.0。如果我导入了预构建的 opencv,我该如何修复它?在我的虚拟环境中只有一个 OpenCV 目录,我认为这是我安装的最后一个目录。

听起来我正在启动 Python2,它安装了另一个版本的 OpenCV,而不是 3.3.1。我该如何修复它?

相关内容