【发布时间】:2017-08-10 16:19:17
【问题描述】:
我的 opencv 安装遇到问题,它无法打开 mp4 视频。我的系统是 ubuntu 16.04, 64bit, opencv3.2 使用自 python 3.5。
VideoCapture.read 返回False 和None。
这个问题还有其他问题,但是针对不同的平台或者不同的opencv版本。
显然,我缺少正确的编解码器。
所以我从我的构建目录中运行make uninstall,用apt 清除opencv* 并再次从源代码构建。这次确保在编译之前安装了ffmpeg。
这是我的步骤:
- 克隆 opencv 和 opencv_contrib
cd opencv/mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D BUILD_EXAMPLES=ON ..make -j 8sudo make install
我检查了cmake的输出,有ffmpeg:
Video I/O:
-- DC1394 1.x: NO
-- DC1394 2.x: NO
-- FFMPEG: YES
-- avcodec: YES (ver 56.60.100)
-- avformat: YES (ver 56.40.101)
-- avutil: YES (ver 54.31.100)
-- swscale: YES (ver 3.1.101)
-- avresample: NO
-- GStreamer: NO
-- OpenNI: NO
-- OpenNI PrimeSensor Modules: NO
-- OpenNI2: NO
-- PvAPI: NO
-- GigEVisionSDK: NO
-- Aravis SDK: NO
-- UniCap: NO
-- UniCap ucil: NO
-- V4L/V4L2: NO/YES
-- XIMEA: NO
-- Xine: NO
-- gPhoto2: NO
但问题仍然存在。我该如何解决这个问题?
更新
我不得不从 /usr/local 中手动删除一些 .so 文件。
然后我安装了我能找到的所有与 avi 相关的编解码器。 https://wiki.ubuntuusers.de/Codecs/ 加上 libavcodec-extra 和 ffmpeg
然后我重新编译,现在它可以工作了。
【问题讨论】:
标签: python opencv ubuntu ffmpeg cmake