若遇到问题可看附注。
配置64位MSYS2
- 在MSYS2官网上下载MSYS2 64位安装包并安装
- 运行MSYS2软件根目录下的msys2.exe,执行 pacman -S make yasm diffutils pkg-config
- 执行pacman -S mingw-w64-x86_64-gcc(可在mingw64.exe执行gcc --version查看gcc是否安装成功)
- 执行pacman -S nasm(nasm用于编译x264的汇编代码)
- 执行pacman -S mingw-w64-x86_64-SDL2(ffplay编译依赖sdl2),退出软件
下载外部库
- 下载libfdk-aac源码和x264源码并解压
编译64位ffmpeg
- 运行MSYS2软件根目录下的mingw64.exe
- cd进入libfdk-aac源码根目录下依次执行./configure --prefix=/mingw64/、make和make install
- cd进入x264源码根目录下依次执行./configure --prefix=/mingw64/ --enable-shared、make和make install
- cd进入解压的ffmpeg源码根目录,执行 ./configure --prefix=/usr/local/ --enable-libx264 --enable-libfdk-aac --enable-gpl --enable-nonfree(这里仅添加了libx264和libfdk-aac库,如果需要其他外部库可自行添加)
- 修改config.h中的#define CONFIG_FFPLAY 0为#define CONFIG_FFPLAY 1(为0不会生成ffplay)
- 依次执行make和make install
运行ffmpeg
- 在mingw64.exe中可运行ffmpeg和ffplay等软件
精简ffmpeg
ffmpeg集成了很多工具和功能,但有时候其中的大部分我们并不需要,所以可以精简掉一些工具以加快编译速度和减少程序的体积,可通过修改配置来达到这个目的,比如将“编译64位ffmpeg”的第4步中的命令修改如下:
./configure --prefix=/usr/local/ --disable-encoders --disable-decoders --enable-encoder=libx264 --enable-encoder=libfdk_aac --enable-decoder=h264 --enable-decoder=libfdk_aac --enable-libx264 --enable-libfdk-aac --enable-gpl --enable-nonfree
读者可自行配置来编译出自己想要的ffmpeg软件。
附注
1. --prefix=用于指明make install后文件的存放路径,/usr/local为MSYS2软件根目录下/usr/local
2. 老版本ffmpeg中ffplay的编译可能需要sdl1.2,可自行下载并编译安装
3. 如果要在编译ffmpeg时生成 .dll 文件,需要在执行 ./configure 时加上 --enable-shared
4. msys2.exe用来安装环境,mingw64.exe用来编译软件
5.若要添加x265编码器可参考链接