搭建编译环境
下载安装msys2,参考文章《QT Mingw编译ffmpeg源码以及测试》。
安装必要的库文件
双击msys2安装目录下的msys2.exe,在cmd窗口中执行以下命令:
//升级所有库
pacman -Syu
//使用下列命令安装ffmpeg编译的依赖和工具
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-yasm
pacman -S mingw-w64-x86_64-SDL2
pacman -S mingw-w64-x86_64-fdk-aac
pacman -S mingw-w64-x86_64-x264
pacman -S mingw-w64-x86_64-x265
pacman -S mingw-w64-x86_64-gcc
pacman -S make diffutils pkg-config git nasm
将ffmpeg拷贝到msys安装路径下的/home/计算机名xxx/下;并在ffmpeg下新建build目录,用于编译;
编译
运行MSYS2 MINGW64:
使用cd命令切换到刚才新建的build目录下,执行configure,生成Makefile:
./configure \
--prefix="/usr/local/ffmpeg" \
--enable-shared --disable-static \
--enable-w32threads --disable-debug --disable-everything \
--enable-gpl --disable-network \
--enable-encoder=bmp,mjpeg,jpeg2000,mpeg4 \
--enable-decoder=h264,hevc,mpeg4,mjpeg,bmp \
--enable-demuxer=h264,hevc,avi,matroska,image2,image_bmp_pipe \
--enable-muxer=h264,hevc,avi,matroska,mp4,mjpeg,image2 \
--enable-parser=h264,hevc,mjpeg,bmp \
--enable-protocol=file \
--enable-filter=scale \
--disable-indevs \
--disable-hwaccels \
--extra-libs=-lmsvcrt
以上设置一些编译ffmpeg的选项,相关解释如下,后续继续补充:
--prefix 安装程序到指定的目录,即最终编译后生成的文件的存放目录;
--enable-sdl2引入SDL2库,ffplay编译必须;
--enable-x264 启用H.264编码(默认关闭);
--enable-faac启用faac支持libfaac(默认关闭);
--enable-static构建静态库(默认启用);
--disable-static禁止构建静态库(默认关闭);
--enable-shared构建共享库(默认关闭);
--disable-shared 禁止构建共享库(默认启用);
--enable-gpl允许使用GPL(默认关闭);
成功后执行make,make install,编译好的库文件会放置到msys64/usr/local/ffmpeg下,拷贝即可。