学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件


1. 错误描述

CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  FFMPEG: Download failed: 6;"Couldn't resolve host name"

  For details please refer to the download log file:

  D:/opencv/bulid_mingw/CMakeDownloadLog.txt

Call Stack (most recent call first):
  3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
  modules/videoio/cmake/detect_ffmpeg.cmake:14 (download_win_ffmpeg)
  modules/videoio/cmake/init.cmake:3 (include)
  modules/videoio/cmake/init.cmake:22 (add_backend)
  cmake/OpenCVModule.cmake:312 (include)
  cmake/OpenCVModule.cmake:375 (_add_modules_1)
  modules/CMakeLists.txt:7 (ocv_glob_modules)

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第1张图片

2. 分析

  根据错误提示打开D:/opencv/bulid_mingw/CMakeDownloadLog.txt。从中可发现出错的文件夹是D:/opencv/sources/.cache。在D:/opencv/sources/.cache中,凡是文件大小是0KB,都是无法下载并报错的。

#use_cache "D:/opencv/sources/.cache"
#match_hash_in_cmake_cache "OCV_DOWNLOAD_ADE_HASH_3rdparty_ade_v0_1_1f_zip"
#do_copy "opencv_videoio_ffmpeg.dll" "3b094c37d270a30f0b20a0bc8d3ecafb" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/3d2e97081683265950316c65a52c2e8858ffba1b/ffmpeg/opencv_videoio_ffmpeg.dll" "D:/opencv/bulid_mingw/3rdparty/ffmpeg"
#missing "D:/opencv/bulid_mingw/3rdparty/ffmpeg/opencv_videoio_ffmpeg.dll"
#check_md5 "D:/opencv/sources/.cache/ffmpeg/3b094c37d270a30f0b20a0bc8d3ecafb-opencv_videoio_ffmpeg.dll"
#mismatch_md5 "D:/opencv/sources/.cache/ffmpeg/3b094c37d270a30f0b20a0bc8d3ecafb-opencv_videoio_ffmpeg.dll" "d41d8cd98f00b204e9800998ecf8427e"
#delete "D:/opencv/sources/.cache/ffmpeg/3b094c37d270a30f0b20a0bc8d3ecafb-opencv_videoio_ffmpeg.dll"
#cmake_download "D:/opencv/sources/.cache/ffmpeg/3b094c37d270a30f0b20a0bc8d3ecafb-opencv_videoio_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/3d2e97081683265950316c65a52c2e8858ffba1b/ffmpeg/opencv_videoio_ffmpeg.dll"
#try 1
# timeout on name lookup is not supported
# getaddrinfo(3) failed for raw.githubusercontent.com:443
# Couldn't resolve host 'raw.githubusercontent.com'
# Closing connection 0
# 

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第2张图片

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第3张图片

3. 解决方法

  1. 打开https://github.com/opencv/opencv_3rdparty,找到正确版本的ffmpeg并下载。若网速太慢或不能下载可以参考学习OpenCV3:解决github下载速度慢的方法(码云)。

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第4张图片

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第5张图片

  1. 将下载的ffmpeg相关文件拷贝到D:/opencv/sources/.cache中。打开cmd,输入编译命令获取各个文件的MD5。当MD5相同时,用已下载的dll替换对应大小为0KB的dll文件,注意修改文件名,其格式是:MD5-文件名。

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第6张图片

cd /d D:\opencv\sources\.cache\ffmpeg
certutil -hashfile ffmpeg_version.cmake MD5

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第7张图片

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第8张图片

  1. 同样的,对D:/opencv/sources/.cache大小为0KB的文件进行如上类似操作,最后重新点击Configue,编译便不会报此类错误了。

学习OpenCV3:Cmake编译OpenCV时无法下载ffmpeg、xfeatures2d等文件_第9张图片

你可能感兴趣的:(#,学习OpenCV3,opencv)