Windows 平台下使用 MSYS 2 编译 FFmpeg

Bili23 Downloader 项目, 技术  ·  2025-09-02

前言

最近 Bili23 Downloader 项目需要精简程序体积大小,而原先使用的 FFmpeg 大小高达 80 MB,添加了很多无用的功能,因此现在需要重新编译一个 FFmpeg,根据实际需要进行精简。

准备工作

前往官网下载安装 MSYS2,不过多赘述。

配置 MSYS2 环境

安装 MSYS2 后,进入安装目录,运行 ucrt64.exe,进入 Shell。

接下来安装 ucrt64 工具链。

pacman -S mingw-w64-ucrt_x86_64-gcc

继续安装 make、pkg-config、nasm 和 diffutils 包。

pacman -S make pkg-config mingw-w64-ucrt_x86_64-nasm mingw-w64-ucrt_x86_64-diffutils

下载 FFmpeg 源码

前往官网下载 FFmpeg 源码。
将下载的 ffmpeg-8.0.tar.xz 移动到一个新的位置,例如 D:\FFmpeg\,那么 MSYS2 对应的路径就是 /d/FFmpeg/
进入目录,解压源码。

cd /d/FFmpeg
bsdtar -xf ffmpeg-8.0.tar.xz

配置 FFmpeg 编译参数

进入解压后的目录,新建一个 gccconf 文件,文件内容如下:

export ARCH=x86_64

./configure \
--prefix=./ffmpeg-build \
--disable-doc \
--disable-shared \
--disable-everything \
--disable-programs \
--disable-swscale \
--disable-filters \
--disable-swresample \
--disable-avx512 \
--disable-network \
--disable-avdevice \
--disable-autodetect \
--enable-demuxer='concat,ffmetadata,mov,mp4' \
--enable-muxer=mp4 \
--enable-decoder='h264,hevc,av1,aac,flac,eac3,ac3'\
--enable-static \
--enable-small \
--enable-ffmpeg \
--enable-protocol='file,concat' \
--extra-ldflags='-static -static-libgcc -static-libstdc++' \

参数根据实际需要进行修改,这里我们需要尽量精简文件,保留程序所需的音视频合并功能,因此使用了 --enable-small 参数,并设置解混器 --enable-demuxer='concat,ffmetadata,mov,mp4',解码器 --enable-decoder='h264,hevc,av1,aac,flac,eac3,ac3',混合器 --enable-muxer=mp4

随后运行 gccconf,进行配置。等待一会,会显示配置信息,因为太长就不展示了。

编译 FFmpeg

依次执行,等待编译完成。

make
make install

进入 ffmpeg-build 目录,查看编译出来的 FFmpeg。

cd ffmpeg-build
./ffmpeg

正常输出,到这里就编译完成了,后续直接修改 gccconf 调整编译参数,再重新 make 编译就行。

 
下一篇:没有了
评论
沧笙踏歌. All Rights Reserved. Theme Jasmine by Kent Liao.