Ubuntu 22.04.1 LTS 交叉编译 FFmpeg 5.1.2 For Windows

给 JiJiDown 2 更新 FFmpeg 版本, 在 Ubuntu 22.04.1 LTS 中编译 32/64 位 FFmpeg

安装编译工具

使用 mingw-w64 进行交叉编译

sudo apt-get -y install mingw-w64-tools gcc-mingw-w64-i686 gcc-mingw-w64-x86-64 make yasm

编译 libmp3lame

LAME MP3 编码器是一个根据 LGPL 许可发布的高质量 MPEG 音频第三层 (MP3) 编码器

32 位

查找交叉编译头文件目录位置

ffmpeg@ffmpeg:~/lame-3.100$ sudo find / -type d -name "*i686-w64-mingw32"
/usr/i686-w64-mingw32
/usr/lib/gcc/i686-w64-mingw32

ffmpeg@ffmpeg:~$ tree -L 1 /usr/i686-w64-mingw32
/usr/i686-w64-mingw32
├── bin
├── include
├── lib
└── share

4 directories, 0 files

编译参数

./configure --prefix=/usr/i686-w64-mingw32 --host=i686-w64-mingw32 --enable-shared=no
make -j
sudo make install

64 位

查找交叉编译头文件目录位置

ffmpeg@ffmpeg:~/lame-3.100$ sudo find / -type d -name "*x86_64-w64-mingw32*"
/usr/x86_64-w64-mingw32
/usr/lib/gcc/x86_64-w64-mingw32

ffmpeg@ffmpeg:~$ tree -L 1 /usr/x86_64-w64-mingw32
/usr/x86_64-w64-mingw32
├── bin
├── include
├── lib
└── share

4 directories, 0 files

编译参数

make clean
./configure --prefix=/usr/x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --enable-shared=no
make -j
sudo make install

编译 FFmpeg

下载 FFmpeg 源代码

wget https://ffmpeg.org/releases/ffmpeg-5.1.2.tar.xz
tar xf ffmpeg-5.1.2.tar.xz 
cd ffmpeg-5.1.2/

configure 中的参数判断规则

i[3-6]86*|i86pc|BePC|x86pc|x86_64|x86_32|amd64)
  arch="x86"

mingw32*|mingw64*)
  target_os=mingw32

32 位

./configure \
--arch=x86 \
--target-os=mingw32 \
--cross-prefix=i686-w64-mingw32- \
--enable-small \
--disable-autodetect \
--disable-debug \
--disable-network \
--disable-pthreads \
--disable-w32threads \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-decoders \
--enable-decoder='aac,aac_fixed' \
--disable-encoders \
--enable-libmp3lame \
--enable-encoder='libmp3lame' \
--disable-hwaccels \
--disable-parsers \
--disable-demuxers \
--enable-demuxer='mov' \
--disable-muxers \
--enable-muxer='mp4,mp3' \
--disable-protocols \
--enable-protocol='file' \
--disable-filters \
--disable-bsfs \
--disable-indevs \
--disable-outdevs
make -j

64 位

make clean
./configure \
--arch=x86 \
--target-os=mingw32 \
--cross-prefix=x86_64-w64-mingw32- \
--enable-small \
--disable-autodetect \
--disable-debug \
--disable-network \
--disable-pthreads \
--disable-w32threads \
--disable-doc \
--disable-ffplay \
--disable-ffprobe \
--disable-decoders \
--enable-decoder='aac,aac_fixed' \
--disable-encoders \
--enable-libmp3lame \
--enable-encoder='libmp3lame' \
--disable-hwaccels \
--disable-parsers \
--disable-demuxers \
--enable-demuxer='mov' \
--disable-muxers \
--enable-muxer='mp4,mp3' \
--disable-protocols \
--enable-protocol='file' \
--disable-filters \
--disable-bsfs \
--disable-indevs \
--disable-outdevs
make -j
最后更新于 2025-02-17
使用 Hugo 构建
主题 StackJimmy 设计