在安装了Homebrew的ffmpeg中启用libfdk_aac

Roc*_*uts 8 macos homebrew ffmpeg codec

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

brew reinstall ffmpeg --with-fdk-aac

出于某种原因,由于一两次更新brew,ffmpeg不能再与libfdk_aac一起安装。

现在,在转换视频并使用-acodec libfdk_aac可以正常工作的视频时,我得到了:

未知的编码器'libfdk_aac'

有没有办法解决这个问题?

llo*_*gan 17

Homebrew v2.0删除了每个公式中未明确启用的所有其他选项。因此,--with如果您使用核心“自制”公式,那么这些选项将不再起作用。

相反,您可以使用第三方存储库(或“点击”),例如?自制ffffeg。此抽头是根据从核心公式中删除选项而创建的。

启用它然后安装ffmpeg

brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式查看其他选项的列表:

brew options homebrew-ffmpeg/ffmpeg/ffmpeg
Run Code Online (Sandbox Code Playgroud)

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

brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac --HEAD
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是,这个方法在 2021 年仍然适用于 Big Sur。非常感谢!比在 Windows 上编译容易得多。 (2认同)

l'L*_*L'l 8

您可以使用选项MacPorts安装 ffmpeg +nonfree

总之,您需要:

  1. 安装 Xcode 工具。尝试一下xcode-select --install,或者查看苹果的开发者网站

  2. 使用适合您的 MacO 版本的正确pkg 文件安装 MacPorts,或使用MacPorts 安装指南中显示的其他选项之一。

  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   
Run Code Online (Sandbox Code Playgroud)

这将安装所有这些。该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 )
Run Code Online (Sandbox Code Playgroud)

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

$ ffmpeg -codecs
$ ffmpeg -formats
Run Code Online (Sandbox Code Playgroud)

另一种选择是自己编译它并选择您想要的任何选项。