linux下opencv带有ffmpeg编译
·
今天用C++opencv读取视频发现一个问题 可以读取图片 无法读取视频 或者 视频流 百度下原因是opencv编译的时候没有把ffmpeg加进去 平时用的都是python 没有这个问题
一般情况下 opencv编译没有加ffmpeg 这样会导致无法读取视频 或者 视频流 cap.isOpen() 一直是false
重新编译Opencv
1.安装ffmpeg 百度参考方法 终端中输入ffmpeg 会跳出一大堆信息 包括版本什么的 说明安装成功
2.重新编译opencv
1.官网下载源码
2.
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
再试下代码 例如
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main() {
VideoCapture cap;
cap.open("Running.flv");
if (!cap.isOpened()) return -1;
namedWindow("camera", 1);
Mat frame;
while (true) {
cap >> frame;
imshow("frame", frame);
if (waitKey(2) > 0) break;
destroyAllWindows();
cap.release();
}
return 0;
}
上面的Cmake不一定有用 可能还需要删除旧版本OpenCVConfig.cmake 等一些文件
sudo find / -iname OpenCVConfig.cmake
找到然后删除
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)