尝试在Windows上使用CMAKE配置OpenCV时出现以下错误:
CMake Warning at cmake/OpenCVUtils.cmake:865 (message):
Download: Local copy of opencv_ffmpeg.dll has invalid MD5 hash:
d41d8cd98f00b204e9800998ecf8427e (expected:
89c783eee1c47bfc733f08334ec2e31c)
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:193 (include)
CMakeLists.txt:527 (include)
Downloading opencv_ffmpeg.dll...
CMake Error at cmake/OpenCVUtils.cmake:888 (file):
file DOWNLOAD MD5 mismatch
for file: [C:/research/opencv300/sources/3rdparty/ffmpeg/downloads/89c783eee1c47bfc733f08334ec2e31c/opencv_ffmpeg.dll]
expected MD5 sum: [89c783eee1c47bfc733f08334ec2e31c]
actual MD5 sum: [d41d8cd98f00b204e9800998ecf8427e]
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:193 (include)
CMakeLists.txt:527 (include)
CMake Error at cmake/OpenCVUtils.cmake:892 (message):
Failed to download opencv_ffmpeg.dll. Status=1;"unsupported protocol"
Call Stack (most recent call first):
3rdparty/ffmpeg/ffmpeg.cmake:10 (ocv_download)
cmake/OpenCVFindLibsVideo.cmake:193 (include)
CMakeLists.txt:527 (include)
Configuring incomplete, errors occurred!
我尝试手动下载opencv_ffmpeg.dll,但配置过程无效。
你能帮助我,如何解决这个问题?
答案 0 :(得分:3)
最近使用opencv 3.1.0遇到了同样的问题。通过使用opencv提取的 ./ build / bin 目录中的相应dll解决了这种情况。至于ffmpeg_version.cmake,从给定的链接中抓取它。替换 ./ sources / 3rd party / ffmpeg 下的文件,然后重新配置cmake。
答案 1 :(得分:2)
您必须将文件复制到要从中构建的源文件夹。
就我而言,那就是
C:\opencv_source\3rdparty\ffmpeg\downloads\35fe6ccdda6d7a04e9056b0d73b98e76
C:\opencv_source\3rdparty\ffmpeg\downloads\89c783eee1c47bfc733f08334ec2e31c
C:\opencv_source\3rdparty\ffmpeg\downloads\8606f947a780071f8fcce8cbf39ceef5
他们以相同的顺序包含这些文件
opencv_ffmpeg_64.dll
opencv_ffmpeg.dll
ffmpeg_version.cmake
查看文件 ffmpeg_cmake CMake期望将md5-hash作为文件夹标签
答案 2 :(得分:1)
我遇到了同样的问题。在我看来,这是通过我们公司网络和代理服务器的问题。
所以我尝试从家里手动下载文件并将其放在我的USB闪存盘上。请查看您的OpenCV源路径。在那里你可以找到像...这样的结构。
" ... \的3rdParty \ FFMPEG \下载\ HASH \ opencv_ffmpeg.dll"
CMake尝试下载文件,但无法通过代理,因此文件为0字节,md5校验和失败。
In" ... \ OpenCV_SOURCE_FOLDER \ 3rdparty \ ffmpeg"你可以找到一个名为" ffmpeg.cmake"的makefile。使用URL CMake尝试从中下载。 在我的情况下,我从以下URL下载了文件:
您的校验和参数可能不同(可能取决于您的OpenCV版本)!你可能必须为" opencv_ffmpeg_64.dll"做同样的事情。和" ffmpeg_version.cmake"。
祝你好运
答案 3 :(得分:0)
我有同样的问题;当我切换到Ubuntu时,我不再有这个问题了。也许你可以改变你的操作系统?
答案 4 :(得分:0)
出现校验和错误,因为它是软件包中的问题,文件可能不在目录中,但openCV会在此过程中下载它,只需确保您连接到Internet而不使用VPN或代理它会被防火墙阻止。