之前使用Visual Studio调用ffmpeg的SDK做一些开发突然遇到一个很奇怪的问题。
想指定我的解码器为libvpx,但是一直说找不到解码器
const AVCodec* videoCodec= avcodec_find_decoder_by_name("libvpx");
首先看了一下我的链接有没有问题,头文件丢在包含目录
库文件丢在库目录
然后依赖项写进去
OK,似乎都没问题,那就是看看我的ffmpeg有没有--enable-libvpx
直接用ffmpeg -decoders看看里面有啥可用的解码器
libvpx都有呀,就比较奇怪了。只能开始用宇宙编译器debug一下出现了什么情况,调试-窗口-模块看看我们链接的库是不是有问题
原来是链接到系统上的avformat-60.dll上去了,Visual Studio会优先去系统路径上找一找库,找到了就不会再找了,系统上为啥会莫名其妙有个这个dll
解决办法
①直接给系统路径上的这个dll删了
②觉得万一它有啥用的话,我们就可以把我们的dll直接放到工程生成文件里去,它的优先级比系统还要高,下面这个路径所有dll全丢进去就可以了。