在使用 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。
总而言之,您需要:
安装 Xcode 工具。尝试 xcode-select --install
,或检查 Apple's developer website。
使用正确的方式安装 MacPorts pkg file for your MacOs release, or use one of the other options shown in the MacPorts installation guide。
使用 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
在 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。
总而言之,您需要:
安装 Xcode 工具。尝试
xcode-select --install
,或检查 Apple's developer website。使用正确的方式安装 MacPorts pkg file for your MacOs release, or use one of the other options shown in the MacPorts installation guide。
使用 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