在这里记录在windows下编译ffmpeg静态库时遇到的一些问题,本文使用vs2019进行编译。
ffmpeg编译相关的介绍参考这篇文章:vs2019编译ffmpeg源码为静态库动态库【完整步骤、亲测可行】_vs2019 ffmpeg-CSDN博客
1、资源下载
根据以上文章下载相关资源和依赖库,一些网络不好的同学在下载依赖库的时候会卡壳,我在这里也顺便附上我下载好的的资源,同步的是当前github上最新的代码(2024.1.30),百度网盘链接 提取码:ue5d
为了减少编译时间,工程中我移除掉了Program,如果需要编译可执行程序的,自行添加。
2、静态编译
第一步,修改运行时库为MT/MTd,但这样编译出来的库在用的时候发现还是会报错:error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”
观察了下,报错的obj全是libx264和libx265依赖库中的文件,然后发现这两个库还有依赖库,
问题明了了,问题出在依赖库没修改运行时库。
第二步,修改libx264和libx265所依赖的库的运行时库,以libx265为例:
1)打开相关工程项目:
2)添加依赖库项目
3)修改运行时库,4个方案都修改(Release选MT,Debug选MTd),libx264也需要修改,步骤和libx265相同。
3、重新编译ffmpeg
修改完之后关闭工程,打开刚才的ffmpeg工程重新编译,得出的静态库就能使用了。
(如果觉得对你有帮助,还请不忘点个赞,你的赞是我更新博客的动力)