赞
踩
本人版本:
- opencv:4.2.0
- Qt:5.12.12
查看版本:
- cout << "opencv version:" << CV_VERSION <<endl;
- cout << "Qt version:" << qVersion()<<endl;
1.问题描述,在MainWindow构造函数中写入以下读取视频的代码一直返回false,十分令人郁闷。
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- // Mat M(2,2,CV_8UC3,Scalar(0,0,255));
- // cout<<"M = "<<endl;
- // cout<<M<<endl;
-
- VideoCapture v;
- Mat frame;
- v.open("D:/1.MP4");
- if(v.isOpened())
- {
- qDebug()<<"chenggong";
- }
- else
- {
- qDebug()<<"shibai";
- }
- cout<<v.isOpened()<<endl;
- v>>frame;
- imshow("img",frame);
- }
2.问题原因
由于采用的是CMake编译的opencv源码,在编译过程中,我们可以打开opencv-build编译目标文件夹目录下查看CMakeDownloadLog.txt文件,会有FFMPEG Download下载失败的日志信息,这是因为FFMPEG的下载仓库在国外网站,导致下载失败。而没有正确编译出FFMPEG的动态链接库。详细可参考以下博客:
Qt下opencv的配置_qt配置opencv_weixin_45773010的博客-CSDN博客
3.解决办法
详细参考这篇文章:
Windows 10下配置OpenCV 4.2.0生成Visual Studio 2019的构建方案 - 哔哩哔哩
3.1下面是下载ffmpeg的文件。打开源码目录 E:\软件安装包\opencv环境\opencv\sources\3rdparty\ffmpeg\fmpeg.cmake文件
可以从第一行看到对应的ffmpeg版本号为20191119。
接下来从国内Gitcode网站文件 · ffmpeg/master_20191119 · OpenCV / opencv_3rdparty · GitCodeOpenCV - 3rdparty
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。