首先要建立至少两级目录,比如F:\ShiftMediaProject\code
然后到code底下clone https://github.com/ShiftMediaProject/FFmpeg 代码到F:\ShiftMediaProject\code\Ffmpeg
运行F:\ShiftMediaProject\code\Ffmpeg\SMP\project_get_dependencies.bat,会自动在code下面克隆依赖的其他项目
建立文件夹F:\ShiftMediaProject\msvc\include,并在下面建立gl、KHR、ffnvcodec、AMF四个目录
下载https://www.khronos.org/registry/EGL/api/KHR/khrplatform.h 到KHR
clone https://github.com/FFmpeg/nv-codec-headers 将include下的文件拷贝到ffnvcodec
colne https://github.com/GPUOpen-LibrariesAndSDKs/AMF 将amf/public/include下的内容(components、core两个文件夹)拷贝到AMF
clone https://github.com/ShiftMediaProject/VSNASM.git ,执行install_script.bat安装nasm,如果执行不了,可以手动安装。
以vs2017为例
即将nasm.props nasm.targets nasm.xml拷贝到C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\BuildCustomizations
在https://www.nasm.us/pub/nasm/releasebuilds/下载nasm,install_script.bat中找到所用的版本号,根据系统选择64位或32位,将下载的文件(如nasm-2.13.03-win64.zip)解压,将nasm.exe拷贝至C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC
clone https://github.com/ShiftMediaProject/VSYASM.git 按nasm一样的步骤操作。
https://github.com/ShiftMediaProject/VSYASM/releases下载打包好的文件,里面包含yasm-32.exe、yasm-64.exe,选择需要的改名yasm.exe拷贝
其他版本vs存放路径可以在install_script.bat中查看出来
打开F:\ShiftMediaProject\code\Ffmpeg\SMP\ ffmpeg_deps.sln ,选好配置项,编译ffmpeg、ffplay、ffprobe,会自动编译依赖项。[***dllstaticdps可以编译通过,其他的配置属性存在问题需要自己修改]
ffmpeg_deps.sln包含依赖项目,以后可以使用ffmpeg.sln,不包含依赖项目
生成的文件在F:\ShiftMediaProject\msvc下面
调试需要将[属性->调试->命令] 的值改成和[属性->链接器->输出文件]一样。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
如果嫌上面操作麻烦,某些文件下载还被墙了,可以到 https://gitee.com/ztwlla/FFMPEG 获取我全部处理好的项目,下载后直接可用。