我在安装opencv时遇到了问题,它无法打开mp4视频。我的系统是ubuntu16.04,64位,opencv3.2来自python3.5。
VideoCapture.read返回False和None。
这个问题还有其他问题,但它们针对的是不同的平台或不同的opencv版本。
显然,我错过了合适的编解码器。因此,我从构建目录中运行make uninstall,使用apt清除opencv*,然后再次从源代码构建。这一次要确保ffmpeg是在编译之前安装的。
以下是我的步骤:
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-额外和ffmpeg
然后我重新编译,现在起作用了。
发布于 2017-03-19 20:26:01
mp4视频通常包含用h264编码的视频。这是一个有专利的编解码器,有些可能需要许可证,这就是为什么它们不能默认地在ubuntu中发布的原因。您需要安装libavcodec-extra以便在ffmpeg中启用对h264的支持。
https://stackoverflow.com/questions/42885794
复制相似问题