在build目录下有三个dll:
opencv_world455.dll
opencv_videoio_msmf455_64.dll
opencv_videoio_ffmpeg455_64.dll
其中ffmpeg的dll是opencv对视频文件解码的支持库,一般地情况下我们程序只需要opencv_world455.dll就能运行,但是如果你想要解码AVI以外的格式opencv会尝试加载ffmpeg的dll,当没有加载到的情况下会return false,你可以把这个dll放入到你的程序运行目录下就可以了,opencv加载到之后就会自动调里面的解码库来解码。
Linux在编译你的opencv库之前先编译好ffmpeg库,然后在编译opencv就可以了。
在编译opencv的时候执行cmake ..命令时会弹出依赖信息,可以在依赖信息里查看ffmpeg是否已被支持
如果支持那么opencv就会编译相关功能,可以解码任意视频格式
参考文档:
Linux编译Opencv3.4.7: relocation R_X86_64_PC32 against `ff_w_ff‘ can not be used when makin with -fPIC_17岁boy的博客-CSDN博客