当前位置:   article > 正文

Qt配置opencv利用VideoCapture读取视频一直返回false踩坑备忘_qt安装opencv能打开图片但打不开视频

qt安装opencv能打开图片但打不开视频

本人版本:

  1. opencv:4.2.0
  2. Qt:5.12.12

查看版本: 

  1. cout << "opencv version:" << CV_VERSION <<endl;
  2. cout << "Qt version:" << qVersion()<<endl;

1.问题描述,在MainWindow构造函数中写入以下读取视频的代码一直返回false,十分令人郁闷。

  1. MainWindow::MainWindow(QWidget *parent)
  2. : QMainWindow(parent)
  3. , ui(new Ui::MainWindow)
  4. {
  5. ui->setupUi(this);
  6. // Mat M(2,2,CV_8UC3,Scalar(0,0,255));
  7. // cout<<"M = "<<endl;
  8. // cout<<M<<endl;
  9. VideoCapture v;
  10. Mat frame;
  11. v.open("D:/1.MP4");
  12. if(v.isOpened())
  13. {
  14. qDebug()<<"chenggong";
  15. }
  16. else
  17. {
  18. qDebug()<<"shibai";
  19. }
  20. cout<<v.isOpened()<<endl;
  21. v>>frame;
  22. imshow("img",frame);
  23. }

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

推荐阅读
相关标签