Windows下载编译FFmpeg动态库指北
在踩了无数坑之后,才有了这篇文章,现在就一个想法还是Linux系统好呀。编译什么东西都是一个套路,configure/make/make install。之前不知道为什么那么程序员会推崇用mac做开发,编译的这个问题上Mac绝对完胜Windows。
一、需要下载的工具
- Visual Studio 2013 或 Visual Studio 2015
- MSYS2 msys2-x86_64
- YASM Win64.exe
- FFmpeg源码 ffmpeg4.0.1
二、编译环境搭建
1. 安装MSYS2,默认安装在C:\msys64目录,安装完成后打开msys2环境,运行命令安装编译工具
pacman -S make gcc diffutils
注:安装过程中可能会出现某些包下载失败的情况,这时只需要多试几次就好,直到提示净更新大小为0就说明安装完整了。
2. 修改C:\msys64\msys2_shell.cmd文件,修改下图红框里的部分,这里是为了让msys2能继承VS的环境变量
set MSYS2_PATH_TYPE=inherit
3. 将C:\msys64\usr\bin\link.exe重命名为其它名字,如link_bak.exe,这里是为了在链接的时候选择Visual Studio的link.exe工具,避免冲突
4. 将下载的yasm工具,yasm-1.3.0-win32.exe,复制到C:\msys64\usr\bin目录,将重命令为yasm.exe
三、准备编译
1. 打开visual studio命令行,这里要选择vs2015 x64 x86兼容工具提示符,打开方式如下图所示
2. 切换目录到C:\msys64,运行msy2_shell.cmd,开启msys2环境
3. 测试环境是否正确,检查编译工具和链接工具是不是指向的VS工具
四、开始编译(以下命令均在msys2环境执行)
1. 切换目录到ffmpeg源码目录
2. 运行configure脚本,相关参数参考下面,configure脚本执行的时间会比较长,耐心等待
1 | ./configure \ |
3. 执行make命令,这个过程可能会有一些错误提示,可以根据提示上网进搜索相关问题,
如编译ffmpeg4.0.1需要注释与变量CC_IDENT相关的语句,存在于cmdutils.c和ff_probe.c文件中