在macOS下编译FFmpeg静态库

由于项目需要,需要静态链接FFmpeg中的libacodec库,而官方并未提供静态库,因此自己编译。这次编译的是macOS平台,以后还会跟进Windows和Linux。

本文重点参考了这位大佬的文章:Brew 编译 FFmpeg 4.2.2,非常感谢。

依赖安装

可能是之前brew装过FFmpeg的原因,大部分库都有了,报缺失库的,可以用brew直接安装(甚至可以直接brew install ffmpeg解千愁),除了下面五个(以下命令起始位置全部为源码根目录)。

1. libmysofa

项目地址:https://github.com/hoene/libmysofa

配置、编译与安装:

cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF ..
make
make install

2. shine

项目地址:https://github.com/toots/shine

配置、编译与安装:

./bootstrap
./configure --prefix=/usr/local --disable-shared
make
make install

3. libvo_amrwbenc

项目地址: https://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc
配置、编译与安装:
./configure --prefix=/usr/local --disable-shared
make
make install

4. libxavs

项目地址:https://sourceforge.net/p/xavs/code/HEAD/tree/trunk

配置、编译与安装:

./configure --prefix=/usr/local --host=x86_64-darwin --disable-asm
make
make install

汇编需禁用,否则报错。 

5. zvbi

项目地址:https://sourceforge.net/projects/zapping/files/zvbi

配置、编译与安装:

./configure --prefix=/usr/local --disable-shared
make
make install

配置

源码版本同样是4.2.2,配置命令:

./configure --cc=/usr/bin/clang --prefix=安装路径 --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --disable-ffplay --pkg-config-flags=--static --extra-cflags="--static" --disable-asm

注意点:

  1. 编译器必须是clang,如果改成brew安装的gcc会找不到一些库。
  2. --pkg-config-flags=--static --extra-cflags="--static"是决定编译静态库的参数。
  3. --disable-asm需要,nasm和yasm全试过,无法在64位处理器上汇编32位的汇编代码(难道FFmpeg的汇编全不能在64位CPU上跑?持疑)。

编译与安装

没什么好说的,传统艺能:

make -j8 && make install

然后就得到了静态库:

在macOS下编译FFmpeg静态库_第1张图片

附编译好的压缩包:FFmpeg 4.2.2 static libraries for macOS(版本4.2.2)。

你可能感兴趣的:(视频压制笔记,ffmpeg,mac,视频处理)