vcpkg采用VS编译器编译ffmpeg可以顺利通过,但是使用MinGW编译器编译ffmpeg存在报错问题。于是打算采用msys2环境下重新对ffmpeg进行编译。
1、 安装MSYS2:从MSYS2的官方网站(https://www.msys2.org/)下载最新版本的MSYS2安装程序,并按照提示进行安装。
2、下载并解压ffmpeg源码(我这里msys2安装目录是G:\msy264)(这里Administrator是本机登录用户名)
3、打开msys2。
3、安装编译说需要的系统插件。
pacman -S yasm nasm gcc make
安装工具链
pacman -S mingw-w64-x86_64-toolchain
如果空间足够就都安装吧,如果不够,选择自己需要的那个就行了。我这里是选择全部安装。
4、进入ffmpeg目录,执行指令对ffmpeg编译环境进行配置
cd /home/Administrator/FFmpeg-n6.1-dev
mkdir build
cd build
../configure --prefix=/home/Administrator/install/ffmpeg --enable-static --disable-shared
如果我们要编译ffplay,需要提前编译好SDL2库(参考MSYS2+MinGW编译ffmpeg库),如果编译过程提示ERROR: sdl2 requested but not found,编译完成SDL2之后,将build目录下的sdl2.pc复制到G:\msys64\mingw64\lib\pkgconfig目录下去,并将上述指令改为如下:
cd /home/Administrator/FFmpeg-n6.1-dev
mkdir build
cd build
../configure --prefix=/home/Administrator/install/ffmpeg --enable-static --disable-shared --enable-sdl --extra-cflags='-I/home/Administrator/install/SDL2/include/SDL2' --extra-ldflags='-L/home/Administrator/install/SDL2/lib'
SDL下载链接:Releases · libsdl-org/SDL (github.com)
SDL2编译指令
cd /home/Administrator/SDL-release-2.28.1
mkdir build
cd build
../configure --prefix=/home/Administrator/install/SDL2
make -j8
make install
5、配置完ffmpeg,执行指令即可完成。
make -j8 && make install