参考大佬们的链接:
vs2017编译FFMPEG_luckywll的博客-CSDN博客
ShiftMediaProject+VS2015win764位环境搭建_会编程的姑娘的博客-CSDN博客
前言:
用vs工具编译源码,方便调试和跟踪源码,更好的学习ffmpeg内部实现原理
注意:
需要一个好的翻墙工具,是成功的一半。你可能会遇到有翻墙工具但是还是下载不下来的问题,可以参考这个
Failed to connect to github.com port 443 after 21107 ms: Timed out
步骤:
准备好翻墙工具以后,开始正式环节
1.创建目录:比如D:\ShiftMediaProject\code
必须有ShiftMediaProject\code的目录结构
2.cd 到 code下
git clone https://github.com/ShiftMediaProject/FFmpeg
如果git命令不识别,需要设置系统环境变量,具体自己百度或者谷歌。
3.下载好ffmpeg代码以后,执行project_get_dependencies.bat脚本
D:\ShiftMediaProject\code\Ffmpeg\SMP\project_get_dependencies.bat
脚本会自动下载所有需要的依赖库,下载过程可能会失败需要多试几次,下载是增量下载,如果中间没有报错,那就成功了,下载截图
4.
建立文件夹D:\ShiftMediaProject\msvc\include,并在下面建立gl、KHR、ffnvcodec、AMF四个目录
下载
https://www.khronos.org/registry/OpenGL/api/GL/glext.h https://www.khronos.org/registry/OpenGL/api/GL/wglext.h 到gl
下载
https://www.khronos.org/registry/EGL/api/KHR/khrplatform.h 到KHR
git clone https://github.com/FFmpeg/nv-codec-headers 将include下的文件拷贝到ffnvcodec
git colne https://github.com/GPUOpen-LibrariesAndSDKs/AMF 将amf/public/include下的内容(components、core两个文件夹)拷贝到AMF
5. D:\ShiftMediaProject 目录下
git clone https://github.com/ShiftMediaProject/VSNASM.git
进到 VSNASM目录下,执行install_script.bat安装nasm,如果失败需要手动安装,请参考最上面的链接,我这里成功了。
6. D:\ShiftMediaProject 目录下
git clone https://github.com/ShiftMediaProject/VSYASM.git
进到VSYASM目录下,执行install_script.bat安装yasm,如果失败需要手动安装,请参考最上面的链接,我这里成功了。
7.
打开D:\ShiftMediaProject\code\Ffmpeg\SMP\ ffmpeg_deps.sln ,直接编译,编译ffmpeg、ffplay、ffprobe,会自动编译依赖项。
ffmpeg_deps.sln包含依赖项目,以后可以使用ffmpeg.sln,不包含依赖项目
生成D:\ShiftMediaProject\msvc下面
补充一点,如果没有window8.1版本,编译时会遇到windows sdk版本不一致问题的问题,x264和x265需要加载libx264bit.vcxproj和libx265bit.vcxproj,重定方案目标然后再移除这两个
8。编译成功