macOS 下如何编译 FFmpeg for macOS App
本文写于 2017 年,示例重点是 FFmpeg 在 macOS App 场景下的编译思路。实际项目建议固定 FFmpeg、x264、fdk-aac 等依赖版本,避免直接使用最新主干导致构建结果不可复现。
我们今天来说说如何编译出适用于 macOS App 的库,包括动态库和静态库。
一、基本编译
1、首先下载 FFmpeg 源码。生产项目建议切换到明确的 tag 或 release 分支。
1 | git clone https://git.ffmpeg.org/ffmpeg.git |
2、配置 ./configure 选项。这里要注意设置 macOS 最低版本要求,否则可能会按当前构建机系统版本生成库文件;如果 App 需要运行在更低版本 macOS 上,就可能出现兼容性问题。
1 | --extra-cflags=-mmacosx-version-min=10.8 --extra-ldflags=-mmacosx-version-min=10.8 |
3、执行 ./configure,示例如下:
1 | ./configure --target-os=darwin --enable-static --enable-swscale --enable-nonfree --enable-gpl --enable-version3 --disable-programs --libdir=/ffmpegbuild/lib --incdir=/ffmpegbuild/include --enable-shared --extra-cflags=-mmacosx-version-min=10.8 --extra-ldflags=-mmacosx-version-min=10.8 |
4、执行编译和安装
1 | make && sudo make install |
5、在根目录下的ffmpegbuild目录中,就是编译好的头文件和库文件,包括静态库和动态库。
二、高级编译
前面之所以说是基本编译,是因为主要编译 FFmpeg 自带库。它包含了大多数 Decoder,但 Encoder 相对有限。例如如果需要把音频编码为 AAC,可能需要额外启用合适的 AAC 编码器。
1、下载和编译aac库
1 | git clone https://github.com/mstorsjo/fdk-aac.git |
也可以直接通过 Homebrew 安装编译后的 AAC 库:
1 | brew install fdk-aac |
2、下载和编译x264库
1 | git clone https://code.videolan.org/videolan/x264.git |
也可以直接通过 Homebrew 安装编译后的 x264 库:
1 | brew install x264 |
3、./configure 配置
这里要注意,需要把 AAC、x264 的库文件和头文件路径加到配置里,否则可能会提示 aac not found。
1 | ./configure --target-os=darwin --enable-static --enable-swscale --enable-libfdk-aac --enable-libx264 --enable-nonfree --enable-gpl --enable-version3 --disable-programs --libdir=/ffmpegbuild/lib --incdir=/ffmpegbuild/include --enable-shared --extra-cflags="-mmacosx-version-min=10.8 -I/Users/forcetech/Downloads/opt/include" --extra-ldflags="-mmacosx-version-min=10.8 -L/Users/forcetech/Downloads/opt/lib" --prefix=/Users/forcetech/Downloads/opt/ |
4、执行编译和安装
1 | make && sudo make install |
5、在根目录下的ffmpegbuild目录中,就是编译好的头文件和库文件,包括静态库和动态库。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Clang's Blog!
评论







