前言
最近 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 编译就行。
评论