opencv 编译“FFMPEG: Download failed”解决办法

在编译OpenCV 源码过程中,需要下载第三方依赖包,由于种种原因,无法下载,导致编译中止
错误类型如下:

FFMPEG: Download: opencv_videoio_ffmpeg.dll Try 1 failed CMake Warning
at cmake/OpenCVDownload.cmake:202 (message): FFMPEG: Download
failed: 28;“Timeout was reached”

FFMPEG: Download: opencv_videoio_ffmpeg_64.dll Try 1 failed CMake
Warning at cmake/OpenCVDownload.cmake:202 (message): FFMPEG:
Download failed: 35;“SSL connect error”

以上错误:opencv_videoio_ffmpeg.dll 和 opencv_videoio_ffmpeg_64.dll下载失败导致。

查看,下载缓存opencv\sources.cache\ffmpeg,文件并未下载完成
在这里插入图片描述

解决方法

一、从其他地方下载以上两个文件,放在opencv\sources.cache\ffmpeg目录中

只需要下载对应的opencv_videoio_ffmpeg.dll 和 opencv_videoio_ffmpeg_64.dll即可,文件名前面的16进制前缀,为对应文件的md5值。
https://download.csdn.net/download/pyt1234567890/12492971

二、修改源码中文件MD5

下载后的文件如下,对应的MD5分别为5de6044cad9398549e57bc46fc13908d和 55c0bc8ad27db00116fabf06508de196
在这里插入图片描述
仅仅把下载的文件放在缓冲区中是不够的,因为自己下载的MD5有可能和源码中指定的MD5不一致,从而导致编译后,依旧无法下载指定是的文件,同样无法编译!

所以修改源码中指定的MD5。
打开文件opencv\sources\3rdparty\ffmpeg\ffmpeg.cmake
把如下两项对应的值,修改成以上文件的MD5,分别对应32位和64位的dll

ocv_update(FFMPEG_FILE_HASH_BIN32 "5de6044cad9398549e57bc46fc13908d")
ocv_update(FFMPEG_FILE_HASH_BIN64 "55c0bc8ad27db00116fabf06508de196")

注意:
其中文件对应关系,可以追溯原始MD5

三、再次编译

通过修改MD5,并和下载的文件对应起来,再次编译即可顺利成功!

注意:
以上方法仅适用于,所需文件版本差异不大的情况下。
如果文件版本差异太大,就必须下载指定的版本了

-----------------------------------------仅此记录-------------------------------------------------------

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值