在使用 Homebrew 安装的 ffmpeg 中启用 libfdk_aac

Enabling libfdk_aac in ffmpeg installed with Homebrew

在 macO 上,我总是习惯通过 Homebrew 安装或更新 ffmpeg。我经常使用 libfdk_aac 音频编解码器,所以我总是这样做:

brew reinstall ffmpeg --with-fdk-aac

由于某些原因,由于一两次brew更新,ffmpeg无法再安装libfdk_aac。

当转换视频并使用多年来一直运行良好的 -acodec libfdk_aac 时,我现在得到:

Unknown encoder 'libfdk_aac'

有办法解决这个问题吗?

您可以使用 MacPorts 安装带有 +nonfree 选项的 ffmpeg。

总而言之,您需要:

  1. 安装 Xcode 工具。尝试 xcode-select --install,或检查 Apple's developer website

  2. 使用正确的方式安装 MacPorts pkg file for your MacOs release, or use one of the other options shown in the MacPorts installation guide

  3. 使用 MacPorts 安装 ffmpeg:

    $ sudo port install ffmpeg +nonfree

哪个会问:

--->  Computing dependencies for ffmpeg
The following dependencies will be installed: 
Xft2
XviD
aom
autoconf
autoconf-archive
automake
brotli
bzip2
cairo
cctools
curl-ca-bundle
dav1d
db48
expat
fontconfig
freetype
fribidi
gd2
gdbm
gdk-pixbuf2
gettext
gettext-runtime
gettext-tools-libs
giflib
glib2
gmake
gmp
gnutls
gobject-introspection
graphite2
graphviz
gts
harfbuzz
icu
jasper
jbigkit
lame
lcms2
libLASi
libass
libbluray
libde265
libedit
libfdk-aac
libffi
libheif
libiconv
libidn2
libjpeg-turbo
libmodplug
libnetpbm
libogg
libopus
libpixman
libpng
librsvg
libsdl2
libtasn1
libtextstyle
libtheora
libtool
libunistring
libvorbis
libvpx
libxml2
libxslt
lz4
m4
nasm
ncurses
nettle
openjpeg
openssl
openssl3
ossp-uuid
p11-kit
pango
pcre
perl5.28
perl5.30
pkgconfig
py39-beaker
py39-importlib-metadata
py39-mako
py39-markdown
py39-markupsafe
py39-setuptools
py39-zipp
python39
python3_select
python_select
rav1e
readline
shared-mime-info
soxr
speex
sqlite3
texinfo
tiff
urw-fonts
vala
webp
x264
x265
xorg-libX11
xorg-libXau
xorg-libXaw
xorg-libXdmcp
xorg-libXext
xorg-libXmu
xorg-libXt
xorg-libice
xorg-libpthread-stubs
xorg-libsm
xorg-libxcb
xorg-xcb-proto
xorg-xcb-util
xorg-xorgproto
xpm
xrender
xz
zimg
zlib
zstd
zvbi
Continue? [Y/n]: y   

这将安装所有这些。 libfdk-aac 编解码器将针对您的机器以及 ffmpeg 进行优化。所有这些都需要一些时间。

结果:

$ ffmpeg -codecs | grep libfdk
AAC (Advanced Audio Coding) (decoders: aac aac_fixed aac_at libfdk_aac ) (encoders: aac aac_at libfdk_aac )

查看完整的编解码器列表和支持的格式:

$ ffmpeg -codecs
$ ffmpeg -formats

另一种选择是 compile it yourself 并选择您想要的任何选项。

Homebrew v2.0 删除了所有未在每个公式中明确启用的额外选项。因此,如果您使用核心 Homebrew 公式,--with 选项将不再有效。

相反,您可以使用第三方存储库(或"tap"),例如 homebrew-ffmpeg。这个水龙头是为了响应从核心公式中删除选项而创建的。

启用它然后安装 ffmpeg:

brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac

您可以通过以下方式查看附加选项列表:

brew options homebrew-ffmpeg/ffmpeg/ffmpeg

建议从 git master 分支安装最新版本。您可以使用 --HEAD 选项:

brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac --HEAD