我的opencv安装遇到问题,无法打开mp4视频。我的系统是ubuntu 16.04,64bit,opencv3.2来自python 3.5。
VideoCapture.read
返回False
和None
。
此问题还有其他问题,但它们针对的是不同的平台或不同的opencv版本。
显然,我错过了正确的编解码器。
所以我从我的构建目录运行make uninstall
,用apt清除opencv*
并再次从源构建。这次确保在编译之前安装了ffmpeg
。
以下是我的步骤:
cd opencv/
mkdir build
cd build
cmake -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 8
sudo 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
然后我重新编译,现在它可以工作。
答案 0 :(得分:1)
mp4视频通常包含以h264编码的视频。这是获得专利的编解码器之一,有些可能需要许可证,这就是为什么默认情况下它们不能在ubuntu中发布。您需要安装libavcodec-extra
才能在ffmpeg中启用对h264的支持。