CMake编译OpenCV4.0时opencv_ffmpeg.dll等下载失败的解决思路总结

1、Configure会报一些红色的警告信息,好比:git

 1 CMake Warning at cmake/OpenCVDownload.cmake:193 (message):
 2 FFMPEG: Download failed: 7;"Couldn't connect to server"
 3 
 4 For details please refer to the download log file:
 5 
 6 D:/study/opencv_with_contrib_test_sln/CMakeDownloadLog.txt
 7 
 8 Call Stack (most recent call first):
 9 3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
10 cmake/OpenCVFindLibsVideo.cmake:200 (download_win_ffmpeg)
11 CMakeLists.txt:636 (include)

 

提示FFMPEG下载失败,由于没法链接到服务器,打开 CMakeDownloadLog.txt 查看详细信息。github

 

2、打开CMakeDownloadLog.txt服务器

 
#use_cache "D:/study/opencv-4.0.0/.cache"
#do_copy "opencv_ffmpeg.dll" "849286ccc527c99e5a218b67f13c6e8c" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll" "D:/study/opencv_with_contrib_test_sln/3rdparty/ffmpeg"

这两句的意思是说将 opencv_ffmpeg.dll(它的md5签名是 849286ccc527c99e5a218b67f13c6e8c,下载地址是  "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll" )
 从 "D:/study/opencv-4.0.0/.cache" 拷贝到 "D:/study/opencv_with_contrib_test_sln/3rdparty/ffmpeg"目录下。

#missing "D:/study/opencv_with_contrib_test_sln/3rdparty/ffmpeg/opencv_ffmpeg.dll" 目标目录下没有此文件

#cmake_download "D:/study/opencv-4.0.0/.cache/ffmpeg/849286ccc527c99e5a218b67f13c6e8c-opencv_ffmpeg.dll" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll"
下载此文件到源代码路径 /.cache/ffmpeg/,并命名为"md5-文件名"

# timeout on name lookup is not supported
# Trying 151.101.108.133...
# TCP_NODELAY set
# connect to 151.101.108.133 port 443 failed: Connection refused
# Failed to connect to raw.githubusercontent.com port 443: Connection refused
# Closing connection 0
#
链接到服务器失败
 

 

3、分析ide

公司工做机没法访问外网,天然就没法链接到下载服务器。那就直接经过外网下载好须要的文件,而后重命名为"md5-文件名",放在  /.cache/ffmpeg/ 文件夹下面,或者直接放到目标路径  /3rdparty/ffmpeg/opencv_ffmpeg.dll(不用重命名)。spa

注意:3d

一、 https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/ffmpeg_version.cmake" 没法直接下载,code

而是直接打开了ffmpeg_version.cmake,能够右键网页选择另存为 ffmpeg_version.cmake.txt,而后再改成ffmpeg_version.cmake。这里若是本身新建一个txt,而后直接将网页上的内容拷进去,而后再该后缀为.cmake是不行的,会提示md5不匹配。server

二、不一样版本的OpenCV对应的 opencv_ffmpeg.dll 等缺失文件的 md5 签名是不同的blog

 

4、总结md5

一、问题不难,一步一步的去求解;

二、沉下心来看英文,比六级简单得多;

三、ffmpeg_version.cmake 这个直接经过链接是不能直接下载的,本身新建一个.cmake不行的时候就去看下为何不行,而不是不停的重复相同的操做以指望奇迹的出现。

四、当发现百度到的解决办法基本雷同时,就没必要花大量时间去检索和本身的问题如出一辙的博文了,这样只会浪费时间,心情也会变得焦躁,此时应该冷静的去思考。

相关文章
相关标签/搜索