Mac中ffmpeg的编译与安装


MAC平台上的FFmpeg的安装方式有三种,分别是通过ffmpeg静态库下载安装、通过Homebrew安装和下载源码编译安装,大家可以选择自己喜欢的方式来实现MAC平台的FFmpeg安装。

1、ffmpeg静态库下载安装

打开FFmpeg官网,如下图所示。

image.png

解压下载完成的压缩文件,可以看到一个可执行文件,在终端执行它即可。

image.png

当然也是可以配置一个环境链接指向该可执行文件,这样便可以在任何地方执行该文件。

这种方式虽然简单快捷,但是很不利于我们对于ffmpeg的学习研究。

2、通过Homebrew方式安装

2.1、安装Homebrew

1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

根据提示输入密码,就可以一步一步安装成功,如果电脑上之前没有安装xCode,在命令行输入 xcode-select --install 安装 CLT for Xcode 即可,之后我们需要再次重新执行上述命令进行安装。

以上是官方的安装方式,为避免翻墙受限的不必要问题,我们也可以通过设置镜像的方式来安装。

1
2
3
4
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/$homebrew-core.git"
git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install /bin/bash brew-install/install.sh
rm -rf brew-install

如果你之前有安装过Homebrew,也没有关系,同样可以设置镜像配置,具体的参见这个网站

2.2、安装FFmpeg

如果有通过Homebrew安装过ffmpeg,请预先执行brew uninstall ffmpeg指令卸载FFmpeg。

执行如下指令

1
brew install ffmpeg

或者

1
brew install ffmpeg --HEAD

两个指令都可以安装ffmpeg,两个都会检测ffmpeg的依赖包并自动安装上,安装需要一定的时间,请耐心等候。这里存在一个问题,就是homebrew从2.0版本开始,便不再提供针对ffmpeg的options的关联安装,如需要将options和ffmpeg关联起来的话,需要采用第三方的options仓库。所以如果你的homebrew版本是2.0后的话,上面两个指令是关联不了诸如x264,fdk-aac等音视频编解码器的。所以我们可以依靠三方仓库homebrew-ffmpeg来实现options和ffmpeg的关联安装。

(1)执行如下指令:

1
2
brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg

(2)执行如下命令,看此仓库支持哪些options。

1
brew options homebrew-ffmpeg/ffmpeg/ffmpeg

(3)根据第2步获取的options,替换如下指令中option,然后执行。

1
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-<option1> --with-<option2> ...

也可以执行如下指令安装所有的options。

1
brew install homebrew-ffmpeg/ffmpeg/ffmpeg $(brew options homebrew-ffmpeg/ffmpeg/ffmpeg --compact)

通过Homebrew的方式安装FFmpeg同样是一种非常简洁方式,但同样也不是一种值得推荐的方式,因为我们无法查看和调试源码来学习研究FFmpeg。

3、源码编译安装

3.1、下载源码

从官网下载源码,可以直接下载源码包,也可以通过git指令来克隆代码仓库。

1
2
3
4
5
6
7
8
9
git clone git://source.ffmpeg.org/ffmpeg.git
#或者码云的链接
git clone https://gitee.com/mirrors/ffmpeg.git

cd ffmpeg
# 查看版本
git branch -a
# 选择版本
git checkout remotes/origin/release/xxx

image.png

3.2、编译源码

在下载的源码目录下执行如下指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
./configure --prefix=/usr/local/ffmpeg \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-postproc \
--enable-libass \
--enable-libcelt \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libopenjpeg \
--enable-openssl \
--enable-libopus \
--enable-libspeex \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libxvid \
--disable-static \
--enable-shared

该指令是为了配置编译,其中--prefix=/usr/local/ffmpeg表示的是编译后的库文件存放地方,大家可以设置自己喜欢的路径。

执行编译安装命令

1
make &&sudo make install

这个编译过程可能会出现类似于libfdk_aac not found或者x264 not found的错误,那是没有安装相关的依赖,这里我们可以通过homebrew来安装这些依赖。

1
2
brew install fdk-aac
brew install x264

当然,如果你的电脑环境配置不全的话,编译过程可能遇到的需要安装的错误会比较多,也没关系,出现什么样的依赖需要安装的,执行对应的指令便可以了。

3.3、配置环境变量

上面的配置编译指令中,我们将编译后的库文件存放在了/usr/local/ffmpeg,执行指令open /usr/local/ffmpeg进入到该路径下,可以看到编译后的相关头文件和库文件,如下图所示。

image.png

执行如下指令

1
2
touch .bash_profile
open .bash_profile

在打开的bash_profile文件中,添加如下语句。

1
2
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$FFMPEG_HOME/bin:$PATH

到此为止,在Mac端上的FFmpeg安装便完成了。

这种安装的方式虽然较为复杂,但是我们可以修改调试源码,很方便我们学习研究FFmpeg源码。