windows编译opencv-3.4.16后没有ffmpeg的解决方案

发布时间:2024-07-15 01:12:13 作者:yexindonglai@163.com 阅读(241)

问题

经过编译且安装后,发现 3rdparty 目录下没有ffmpeg目录

通过opencv的cv::CascadeClassifier.load()函数加载mp4文件时无法读取到mp4文件内容

分析

通过再次构建编译后发现在 Configure 过程中下载 ffmpeg.dll 文件失败了; 虽然这个报错并不影响编译,但是最终导致了无法打开mp4文件;

解决

虽然下载失败了, 但是也告诉我们具体日志信息,在 D:/cpp/opencv-3.4.16/sources/build/CMakeDownloadLog.txt里面;我们打开看下

打开后如下图,告诉我们有3个文件下载失败了;这三个文件分别为:

  • opencv_ffmpeg.dll
  • opencv_ffmpeg_64.dll
  • ffmpeg_version.cmake

接下来我们将这3个文件都下载下来,图中 https://raw.githubusercontent.com 开头的就是下载链接

有一个问题是下载ffmpeg_version.cmake文件时可能会在浏览器中直接打开此文件,此时应当在浏览器上右键选择“另存为”将文件保存到本地。如果直接复制内容可能导致MD5校验不通过而重新下载

然后最重要的一部,将3个下载下来的文件分别命名为 #check_md5 所在的那一栏的文件名

  • opencv_ffmpeg.dll 改为:55c25bbc13e4a12d4339b70d3b76987f-opencv_ffmpeg.dll
  • opencv_ffmpeg_64.dll 改为 67caee9231c6843483b4de9815d6526e-opencv_ffmpeg_64.dll
  • ffmpeg_version.cmake 改为:3b90f67f4b429e77d3da36698cef700c-ffmpeg_version.cmake

然后将这三个文件复制到 D:\cpp\opencv-3.4.16\sources\.cache\ffmpeg 目录进行替换;

为什么要复制到 D:\cpp\opencv-3.4.16\sources\.cache\ffmpeg 目录呢? 因为在 CMakeDownloadLog.txt 文件中已经告诉你了,检查这三个文件时失败了,现在只需要将这3个文件修正过来就好了!

到这里就修复完成了, 然后在按照以下教程的第2步开始,重新 Configure,再按照教程一步步操作就可以了!

http://chn520.cn/article_detail/1719235261390345

关键字OpenCV