Mac环境下编译安装FFMPEG

最近因为做一个云游戏项目,需要以 x264 方式进行实时的视频编解码。由于FFmpeg 默认没有提供 Mac OS X 下的已经编译好的动态链接库(甚至连静态库都没有提供),所有在 Mac OS X 下编译 FFmpeg 动态链接库(以及静态库)版本构建好开发编译环境比较困难,网上很多帖子都是照搬或者版本比较久已经不再有效了。

在OS X上编译FFmpeg有以下几种方法。

一. 自行编译

在Mac OS X上编译FFmpeg和在其他Unix机器上编译一样简单,但是有几处需要注意。常规流程是 获取源代码->./configure ->make && sudo make install。只需要输入指定的flags就行了。​

二. 工具编译

另一种方法可以用一些"编译助手"工具来帮助你编译安装FFmpeg。​比如Homebrew 和Macports 。具体步骤请查看本文Homebrew章节

1. 下载安装

如果你不能编译或者你也不想安装Homebrew,你可以直接下载FFmpeg For OS X稳定版,但是,有可能并不包含一些你想要的功能。典型的就是需要你解压文件[如.zip文件],然后在刚解压出来的文件夹中找到FFmpeg程序路径,运行它。

------

通过Homebrew安装FFmpeg​

Homebrew是一个安装包管理器命令行,与分布式Linux系统上的`apt-get`方式十分类似。要使用Homebrew,你需要先安装`brew`,如果你还没有安装,请使用以下命令安装

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`

如果安装成功,输入以下命令以最少配置选项(和依赖库)安装最新版本的FFmpeg:

brew install ffmpeg

这些安装包的版本都是Homebrew的方案(formulas),安装程序会自动将FFmpeg的依赖库安装好。你可以输入`brew info ffmpeg`查看额外的安装选项,如:如果想要添加`libfdk_aac`或`libvpx`两个库(这两个库是高度推荐安装的),可以输入以下包含额外推荐选项的命令:

brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-libass --with-libquvi --with-libvorbis --with-libvpx --with-opus --with-x265

​​如果你不清楚怎么配置和编译二进制文件,你会发现使用Homebrew相当简单。以后如果要升级FFmpeg到最新版本时,只需要输入以下命令即可:

brew update && brew upgrade ffmpeg

如果你想通过Homebrew安装FFmpeg的最新Git版本,在第一条安装命令后面添加`--HEAD`,如:

brew install ffmpeg --HEAD

如果你想手动编译FFmpeg的最新Git版本,请继续往下阅读。​

2.手动编译FFmpeg

a.使用Xcode编译​

从Mac OS X 10.7开始,Xcode已经在Mac App Store上可以免费下载了,并且在Mac上编译任何东西都需要用到它。请确保你已经通过`Xcode->Preferences(command+,)->Downloads->Components`安装了Command Line Tools.早期的版本需要一个AppleID和免费的开发者账户,可以在developer.apple.com注册。

b.使用Homebrew编译​

要获取Mac OS X的FFmpeg,首先,你需要安装Homebrew。如果你不想安装Homebrew,请阅读下一节。Homebrew安装命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后输入以下命令:

brew install automake fdk-aac git lam libass libtool libvorbis libvpx \ opus sdl shtool texi2html theora wget x264 xvid yasm

Mac OS X从10.7版本开始已经自带Freetype(早期版本可以需要在安装过程中选择'X11',通常情况下X11的路径是:`/usr/X11`)。然后在终端运行`freetype-config`就会显示出独立的文件夹,像头文件(headers),库文件(libraries),所以,请在输入`./configure`配置命令之前,运行以下命令或将以下命令添加到`$HOME/.profile`文件中:

CFLAGS='freetype-config --cflags' LDFLAGS='freetype-config --libs' PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/usr/X11/lib/pkgconfig

c.不使用Homebrew手动安装FFmpeg依赖库

-Pkg-config & GLib​

Pkg-config是检查可以被编译进ffmpeg的库的必要文件,它需要GLib,但是GLib并没有安装在Mac OS X(绝大多数Unix系统中都安装了)系统中。你可能需要下载pkg-config 0.23,或从Gnome.org下载压缩文件解压并编译它。pkg-config可以从Freedesktop.org下载。

要编译GLib,你还要从GNU.org下载gettext,并且编辑stpncpy.c文件,在"#ifndef weak_alias"前加一行"#undef stpncpy"。Mac OS X从10.7开始有它自己版本的stpncopy功能(不兼容),在gettext里重复了。正常编译gettext就行了。使用以下命令编译Glib:

LIBFFI_CFLAGS=-I/usr/include/ffi LIBFFI_LIBS=-lffi
​​​​​​​​​​./configure​
`make && sudo make install`

(sudo make install 这一步时,可能需要输入管理员密码)

要编译pkg-config,输入以下命令:​

GLIB_FLAGS="-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include" GLIB_LIBS="-lglib-2.0 -lgio-2.0"
./configure --with-pc-path="/usr/X11/lib/pkgconfig:/usr/X11/share/pkgconfig:/usr/local/pkgconfig"

-Yasm

Yasm可以从tortall.net下载,Yasm是编译包含机器独立汇编代码的C代码必要文件。使用以下命令安装Yasm:

./configure --enable-python
make && sudo make install

(sudo make install 这一步,可能需要输入管理员密码)

-额外依赖库

以下仅仅只是举例,具体参数请输入`./configure --help`查看:​

 *x264 编码H.264视频。编译参数--enable-gpl --enable-libx264

 *fdk-aac编码AAC音频。编译参数--enable-libfdk-aac

 *libvpx。VP8/VP9视频编码器。编译参数--enable-libvpx

 *libvorbis 编码Vorbis音频。需要libogg。编译参数--enable-libvorbis

 *libopus编码Opus音频。

 *LAME编码MP3音频。编译参数--enable-libmp3lame

 *libass字幕渲染器。编译参数--enable-libass

3:正式编译

如果你已经编译好了所有你想要的编码器/依赖库,你就可以使用Git下载FFmpeg的源代码或者从网站链接下载发布的压缩文件。研究`./configure --help`的输出,确保你已经启用了所有你想要功能,记住`--enable-nonfree`和`--enable-gpl`两个参数将是上面某些库的依赖条件。下面是一个编译例子:

git clone http://source.ffmpeg.org/git/ffmpeg.git ffmpeg
cd ffmpeg
./configure --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass \
--enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus \
--enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid \
--enable-shared --enable-static
make && sudo make install

注意:在执行各自的 configure 创建编译配置文件时,最好都强制带上 --enable-static 和 --enable-shared 参数以确保生成静态库和动态库。另外因为是在 Mac OS X 环境下编译,因此在各自编译完后,都要执行 sudo make install,安装到默认的 /usr/local 目录下相应位置(Mac OS X 下不推荐 /usr),因此不要在 configure 时指定 --prefix,就用默认的 /usr/local 目录前缀即可。完成编译安装后,FFmpeg 的头文件将会复制到 /usr/local/include 下面相应位置,静态库及动态库会被复制到 /usr/local/lib 目录下,FFmpeg 的可执行程序(ffmpeg、ffprobe、ffserver)会被复制到 /usr/local/bin 目录下,这样 FFmpeg 的开发环境就构建好了。

参考链接:

https://trac.ffmpeg.org/wiki/CompilationGuide/macOS

https://www.linuxidc.com/Linux/2015-12/126093.htm


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Mac安装FFmpeg有几种方法可以选择。 一种方法是从官方网站下载FFmpeg软件包。 这可以通过访问FFmpeg的官方网站并下载适用于Mac的软件包来完成。 这种方法相对简单,但可能需要手动进行一些配置和安装步骤。 另一种方法是使用静态构建在Mac安装FFmpeg。 这种方法涉及到下载预编译的二进制文件,然后将其解压缩并将其添加到系统的PATH环境变量中。 这种方法相对简单且节省时间,因为不需要手动编译源代码。 还有一种推荐的方法是通过Homebrew来安装FFmpeg。 Homebrew是一个流行的包管理器,可以简化在Mac安装软件的过程。 使用Homebrew安装FFmpeg非常简单,只需要运行几个命令就可以完成。 首先,你需要在终端中安装Homebrew,然后使用以下命令安装FFmpeg: 1. 打开终端应用程序。 2. 运行以下命令来安装Homebrew:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 3. 安装完成后,运行以下命令来安装FFmpeg:brew install ffmpeg 安装完成后,你可以运行"ffmpeg --version"命令来验证FFmpeg是否成功安装。 综上所述,你可以通过从官方网站下载软件包、使用静态构建或通过Homebrew安装FFmpeg来在Mac安装FFmpeg。选择哪种方法取决于你的个人偏好和需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [[已成功]在mac安装FFmpeg,详细全过程](https://blog.csdn.net/csdn_yudong/article/details/129753111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [mac安装ffmpeg](https://blog.csdn.net/s_ongfei/article/details/128254886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值