所有依赖项目下载后,编译ffmpeg还有额外的编译头文件,在msvc目录下,创建如图所示目录 1、下载 opengl 的 glext.h 和 wglext.h 到 " msvc/include/gl/ " 目录下。(下载点 这里) 2、下载 opengl 的 khrplatform.h 到 " msvc/include/KHR/ " 目录下。(下载点 这里) 3、下载 nv-codec-headers 项目的 “include” 文件夹下的内容到 " msvc\include " 目录下。(git 项目点 这里) 4、下载 AMF 项目的 “amf/public/include” 文件夹下的内容到 " msvc/include/AMF/ "目录下。 (git 项目点 这里)
msvc 来编译 ffmpeg 还需要 安装 NASM 才能编译所有的汇编文件。ShiftMediaProject 为编译 ffmpeg 提供的自定义构建项【nasm / yasm】默认 VS是没有支持的,所以需要用第5步同样的方法下载nasm 和 yasm,并安装,否则有些有汇编的工程无法加载 【nasm】下载地址:https://github.com/ShiftMediaProject/VSNASM.git 【yasm】下载地址:https://github.com/ShiftMediaProject/VSYASM.git 安装:nasm与yasm的安装方式完全一样,这里以nasm举例:进入下载好的nasm目录,找到install_script.bat文件,不要直接运行,先 以管理员身份,在预设好 VS 相关变量的脚本环境中 (开发者命令行 / Developer command),运行该 install_script.bat 脚本 执行成功即可,yasm用同样的方式安装。
一切准备就绪,可以打开ffmpeg_deps.sln解决方案开始编译了,编译的过程中,会有编译不通过的两个工程,一个是gnutls项目,一个是libilbc项目 是因为这两个项目的子项目没有自动下载导致,我这个版本是gnutls,libilbc这两个项目有子项目,不同版本可能有不同的项目存在子项目。 这里以gnutls项目为例,通过编译,可以发现gnutls\devel目录下libtasn1目录是空的。 在github上找到这个子项目的地址进行下载即可。 点击该gnutls的libtasn1这个子项目进入下面页面,点击libtasn1 就可以找到libtasn1的git地址,通过git clone下载到gnutls/devel目录下即可。 同样的方法根据编译提示,找到libilbc缺少的依赖子项目下载下来即可。
最后大功告成
可以变成调试了,Debug编译ffmpeg生成文件是ffmpegd,调式会提示找不到ffmpeg,这需要做如下配置 改好之后就可以调试了
技术参考: 使用 VS2015 编译并调试 ffmpeg:https://www.cnblogs.com/BensonLaur/p/10989115.html