windows使用MSYS2编译FFmpeg
1. 下载并安装msys2
官方下载地址为https://www.msys2.org/,由于官方下载速度比较慢,推荐使用清华大学开源软件镜像站进行下载,地址为https://mirrors.tuna.tsinghua.edu.cn/help/msys2/。
2. 下载FFmpeg
下载FFmpeg源码,官方网址:http://ffmpeg.org/download.html
3. 打开MSYS2 MinGW64
以编译64位FFmpeg为例,选择64位的命令窗口进行
打开的命令行如下:
4. 配置编译环境并编译
- 依次复制如下命令在MINGW64命令行中执行:
pacman -S mingw-w64-x86_64-toolchain //这是mingw工具链
pacman -S msys/base-devel //基础工作环境
pacman -S yasm nasm gcc //汇编啥的编译器
pacman -S mingw64/mingw-w64-x86_64-SDL2 //SDL2 是ffmpeg依赖的,因为没有它ffpaly不能用
- 依次执行如下命令,对FFmpeg源码进行编译安装:
首先将下载的FFmpeg源码压缩包进行解压,在MINGW64命令行中进入FFmpeg源码文件夹,命令形如:cd /d/FFmpeg-4.4.3
./configure --prefix=/usr/local/ffmpeg //安装配置/检查将文件生成 (此处执行需要很长时间,等待结束不要急)
// --prefix=/usr/local/ffmpeg可以设定为自己定义的存放路径,如prefix=C:/Users/xxx/Desktop/ffmpeg
make //这也需要很长时间
make install //这不需要很长时间
5. 编译结果
编译后获得相关文件。
6. 编译过程中遇到的问题
- 编译过程中可能会出现一些错误导致
make
命令提前结束,遇到此问题可能是由于上一次编译出现问题,解决方法是:重新安装MSYS2,并重新执行上述步骤。 - 编译后执行
ffmpeg.exe、ffplay.exe、ffprobe.exe
会出现找不到库的问题,原因是编译时会用到MINGW64的库文件,需要将相应的库文件复制到exe
文件所在的目录才可以正常执行。
我使用的是64位编译,需要在msys64/mingw64/bin
目录下找相应的库文件: