opencv版本4.5.1
平台win10
问题描述
无论是直接用视频地址初始化VideoCapture对象,还用open方法打开视频,再进行用isopen判断的时候都返回false
解决办法
排除中文路径,路径错误(比如斜杠和反斜杠),视频本身不可播放之后考虑是解码问题
查看cmake的configure的时候ffmpeg是否下载成功
(这是与解码相关的动态库,下载完成我这里有两个opencv_videoio_ffmpeg.dll和opencv_videoio_ffmpeg64.dll)
本来会自动下载到…\opencv\opencv-4.5.1.cache\ffmpeg\中,结果查看其中的文件都是0kb
所以我直接打开vpn,查看cmake目标生成目录下的CMakeDownloadLog.txt文件里面有下载地址
我下载了2个文件,opencv_videoio_ffmpeg.dll,opencv_videoio_ffmpeg_64.dll,在log文件中还有一个ffmpeg_version.cmake,在浏览器输入地址直接给了文件内容所以复制内容建立一个同名文件,将这些文件放到…\opencv\opencv-4.5.1\.cache\ffmpeg\中注意前面的数字加字母的编码也要和那三个0kb的文件一致
然后生成,编译,安装(略)
进入生成目录(自己设定的)我的是build2下
可以看到.\opencv\opencv-4.5.1\build2\3rdparty\ffmpeg\下有两个动态库了,但是如果添加了环境变量加载视频还是不成功
那是因为要把这两个库改名
改成如(根据你opencv版本)
这样才能正确加载此动态库
终于弄好了