最近需要在linux中使用opencv的VideoCapture,获取网络摄像头视频,但是一直在open时返回false。原因在与opencv编译过程中没有ffmpeg。
解决方法是先安装ffmpeg,然后编译一遍opencv,在cmake时加一个ffmpeg选项。网上查到好多和交叉编译相关的,但是这里我不需要。
解决:
1.安装ffmpeg。在很多博客中写的是源码编译,但是我用命令直接安装就可以用了,很方便。控制台输入ffmpeg,检查是否安装成功。
2.安装opencv。
cd opencv #进入opencv根目录
mkdir build #创建编译输出目录
cd build #进入build 目录
#编译(注意cmake最后需要写两个点)
sudo cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -D WITH_FFMPEG=ON ..
sudo make
sudo make install
注意在cmake结束后,在输出的靠近最后的地方,看到FFMPEG这里都是YES,就可以进行后面的make了。
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: YES (ver 2.1.0)
参考资料:
https://blog.csdn.net/weixin_42319662/article/details/80466398
https://blog.csdn.net/zhulinmanbu114/article/details/90405878
https://blog.csdn.net/miss_ju/article/details/60325868
http://notes.maxwi.com/2017/03/01/ubuntu-compile-opencv2-with-cuda-and-ffmpeg/