环境说明
为了使用 ffmpeg lib 库,同时需要支持 h264 视频编解码格式以及 aac 音频编解码格式,因此首先需要在 mac 上本地编译安装 ffmpeg 以及 对应的 h264, aac 依赖包, 我这里以最新的 ffmpeg5.1.2 的稳定版本为编译安装版本
编译之前需要按照的依赖工具包
在编译 ffmpeg 以及相关依赖包的时候,可能会需要用到一些编译工具,这部分工具需要提前安装好, 在 mac 采用 clang 进行编译安装,会需要用到 c 的一些标准库文件,标准库文件首先需要通过安装 Command Line Development Tools 获得, 可以根据系统版本选择安装,我这里由于安装过 xcode ide, 直接通过下面的命令安装 xcode-select --install
通过 xcode-select -p
可以检查 Command Line Development Tools 是否已经安装成功
安装完成之后,我就可以找到标准 c 库的位置, 比如我这里安装的是 12.1 版本, 因此标准库的位置如下
/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/usr/include
这个路径需要记下来,后面在配置 vscode 环境时会用到
除了 c 语言编译工具 clang 和标准库文件之外,还需要安装一些其他的编译工具,这部分工具主要供 ffmpeg 编译安装,以及它依赖的一些三方编解码器编译安装会用到,比如 h264 需要用到汇编编译工具 nasm, 这些工具统一用 brew 安装即可
brew install autoconf automake cmake libtool nasm yasm
如果操作系统版本是 macOS Big Sur 之上的版本,可能无法使用 brew, 提示错误如下:
Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.
解决办法如下
$ sudo chown -R `whoami` /usr/local/Homebrew/
$ sudo chown -R $(whoami) $(brew --prefix)/*
$ sudo mkdir /usr/local/Frameworks
$ sudo chown -R `whoami` /usr/local/Frameworks/
编译安装 ffmpeg5
首先进行编译安装 ffmpeg 依赖的第三方编解码, 我统一安装到一个我自定义的 ffmpeg 安装目录中,后需要依赖的头文件,以及 lib 文件都可以在这个自定义文件目录中找到,我设定这个目录为 WORKDIR="/Users/max/working/c/ffmpeg5
这个目录下面, 在这个目录下面建立三个文件夹 ffmpeg_src, ffmpeg_build,bin, 分别存放编译源代码 、编译生成的头文件,类库等、可执行文件
首先进入到 $WORKDIR/ffmpeg_src
目录编译安装 h264 编解码器
git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
cd x264 && \
PATH="$WORKDIR/bin:$PATH" PKG_CONFIG_PATH="$WORKDIR/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$WORKDIR/ffmpeg_build" --bindir="$WORKDIR/bin" --enable-static --enable-pic && \
PATH="$WORKDIR/bin:$PATH" make && \
make install
回到
$WORKDIR/ffmpeg_src` 目录编译安装 aac 编解码器
git clone --depth 1 https://gitcode.net/u011546806/fdk-aac.git && \
cd fdk-aac && \
autoreconf -fiv && \
./configure CFLAGS=-fPIC --prefix="$WORKDIR/ffmpeg_build" && \
make &a