为什么 ffmpeg 需要 DNS 解析器作为它的依赖?
Why does ffmpeg need DNS resolver as its dependencies?
我今天使用 brew install ffmpeg libav
安装 FFmpeg 和 libav,这时我注意到依赖项列表中有 unbound
。
这很奇怪,因为 unbound
是 DNS 解析器,为什么 ffmpeg 需要它。
❯ brew install ffmpeg libav
==> Installing dependencies for ffmpeg: aom, frei0r, gmp, libtasn1, nettle, p11-kit, unbound, gnutls, lame, libass, libbluray, libsoxr, libvidstab, libvpx, opencore-amr, opus, libsndfile, libsamplerate, rubberband, sdl2, speex, giflib, leptonica, tesseract, theora, x264, x265 and xvid
我什至检查了 ffmpeg 的信息列表,但 unbound
不在那里
❯ brew info ffmpeg
ffmpeg: stable 4.2.1 (bottled), HEAD
Play, record, convert, and stream audio and video
https://ffmpeg.org/
/usr/local/Cellar/ffmpeg/4.2.1_2 (287 files, 56.6MB)*
- Poured from bottle on 2019-12-19 at 10:45:56
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb
==> Dependencies
Build: nasm ✘, pkg-config ✔, texi2html ✘
Required: aom ✔, fontconfig ✔, freetype ✔, frei0r ✔, gnutls ✔, lame ✔, libass ✔, libbluray ✔, libsoxr ✔, libvidstab ✔, libvorbis ✔, libvpx ✔, opencore-amr ✔, openjpeg ✔, opus ✔, rtmpdump ✔, rubberband ✔, sdl2 ✔, snappy ✔, speex ✔, tesseract ✔, theora ✔, x264 ✔, x265 ✔, xvid ✔, xz ✔
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 66,434 (30 days), 280,128 (90 days), 1,079,492 (365 days)
install-on-request: 48,053 (30 days), 203,583 (90 days), 759,254 (365 days)
build-error: 0 (30 days)
参考链接
On Homebrew unbound 是 gnutls 的依赖项,它是使用 --enable-gnutls
时 ffmpeg 的依赖项(在 ffmpeg Homebrew 公式中默认使用)。
gnutls(或 openssl、mbedtls、libtls、securetransport)在 ffmpeg 中用于 HTTPS 支持。
brew deps --tree
可以帮助您解决这个问题。在 ffmpeg
的情况下,unbound
被 gnutls
引入以支持 HTTPS。
% brew deps --tree ffmpeg
ffmpeg
├── aom
├── fontconfig
│ └── freetype
│ └── libpng
├── freetype
│ └── libpng
├── frei0r
├── gnutls
│ ├── gmp
│ ├── libidn2
│ │ ├── gettext
│ │ └── libunistring
│ ├── libtasn1
│ ├── libunistring
│ ├── nettle
│ │ └── gmp
│ ├── p11-kit
│ │ └── libffi
│ └── unbound
│ ├── libevent
│ │ └── openssl@1.1
│ └── openssl@1.1
├── lame
├── libass
│ ├── freetype
│ │ └── libpng
│ ├── fribidi
│ └── harfbuzz
│ ├── cairo
│ │ ├── fontconfig
│ │ │ └── freetype
│ │ │ └── libpng
│ │ ├── freetype
│ │ │ └── libpng
│ │ ├── glib
│ │ │ ├── gettext
│ │ │ ├── libffi
│ │ │ ├── pcre
│ │ │ └── python
│ │ │ ├── gdbm
│ │ │ ├── openssl@1.1
│ │ │ ├── readline
│ │ │ ├── sqlite
│ │ │ │ └── readline
│ │ │ └── xz
│ │ ├── libpng
│ │ ├── lzo
│ │ └── pixman
│ ├── freetype
│ │ └── libpng
│ ├── glib
│ │ ├── gettext
│ │ ├── libffi
│ │ ├── pcre
│ │ └── python
│ │ ├── gdbm
│ │ ├── openssl@1.1
│ │ ├── readline
│ │ ├── sqlite
│ │ │ └── readline
│ │ └── xz
│ ├── graphite2
│ └── icu4c
├── libbluray
│ ├── fontconfig
│ │ └── freetype
│ │ └── libpng
│ └── freetype
│ └── libpng
├── libsoxr
├── libvidstab
├── libvorbis
│ └── libogg
├── libvpx
├── opencore-amr
├── openjpeg
│ ├── libpng
│ ├── libtiff
│ │ └── jpeg
│ └── little-cms2
│ ├── jpeg
│ └── libtiff
│ └── jpeg
├── opus
├── rtmpdump
│ └── openssl@1.1
├── rubberband
│ ├── libsamplerate
│ │ └── libsndfile
│ │ ├── flac
│ │ │ └── libogg
│ │ ├── libogg
│ │ └── libvorbis
│ │ └── libogg
│ └── libsndfile
│ ├── flac
│ │ └── libogg
│ ├── libogg
│ └── libvorbis
│ └── libogg
├── sdl2
├── snappy
├── speex
│ └── libogg
├── tesseract
│ ├── leptonica
│ │ ├── giflib
│ │ ├── jpeg
│ │ ├── libpng
│ │ ├── libtiff
│ │ │ └── jpeg
│ │ ├── openjpeg
│ │ │ ├── libpng
│ │ │ ├── libtiff
│ │ │ │ └── jpeg
│ │ │ └── little-cms2
│ │ │ ├── jpeg
│ │ │ └── libtiff
│ │ │ └── jpeg
│ │ └── webp
│ │ ├── jpeg
│ │ ├── libpng
│ │ └── libtiff
│ │ └── jpeg
│ └── libtiff
│ └── jpeg
├── theora
│ ├── libogg
│ └── libvorbis
│ └── libogg
├── x264
├── x265
├── xvid
└── xz
我今天使用 brew install ffmpeg libav
安装 FFmpeg 和 libav,这时我注意到依赖项列表中有 unbound
。
这很奇怪,因为 unbound
是 DNS 解析器,为什么 ffmpeg 需要它。
❯ brew install ffmpeg libav
==> Installing dependencies for ffmpeg: aom, frei0r, gmp, libtasn1, nettle, p11-kit, unbound, gnutls, lame, libass, libbluray, libsoxr, libvidstab, libvpx, opencore-amr, opus, libsndfile, libsamplerate, rubberband, sdl2, speex, giflib, leptonica, tesseract, theora, x264, x265 and xvid
我什至检查了 ffmpeg 的信息列表,但 unbound
不在那里
❯ brew info ffmpeg
ffmpeg: stable 4.2.1 (bottled), HEAD
Play, record, convert, and stream audio and video
https://ffmpeg.org/
/usr/local/Cellar/ffmpeg/4.2.1_2 (287 files, 56.6MB)*
- Poured from bottle on 2019-12-19 at 10:45:56
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb
==> Dependencies
Build: nasm ✘, pkg-config ✔, texi2html ✘
Required: aom ✔, fontconfig ✔, freetype ✔, frei0r ✔, gnutls ✔, lame ✔, libass ✔, libbluray ✔, libsoxr ✔, libvidstab ✔, libvorbis ✔, libvpx ✔, opencore-amr ✔, openjpeg ✔, opus ✔, rtmpdump ✔, rubberband ✔, sdl2 ✔, snappy ✔, speex ✔, tesseract ✔, theora ✔, x264 ✔, x265 ✔, xvid ✔, xz ✔
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 66,434 (30 days), 280,128 (90 days), 1,079,492 (365 days)
install-on-request: 48,053 (30 days), 203,583 (90 days), 759,254 (365 days)
build-error: 0 (30 days)
参考链接
On Homebrew unbound 是 gnutls 的依赖项,它是使用 --enable-gnutls
时 ffmpeg 的依赖项(在 ffmpeg Homebrew 公式中默认使用)。
gnutls(或 openssl、mbedtls、libtls、securetransport)在 ffmpeg 中用于 HTTPS 支持。
brew deps --tree
可以帮助您解决这个问题。在 ffmpeg
的情况下,unbound
被 gnutls
引入以支持 HTTPS。
% brew deps --tree ffmpeg
ffmpeg
├── aom
├── fontconfig
│ └── freetype
│ └── libpng
├── freetype
│ └── libpng
├── frei0r
├── gnutls
│ ├── gmp
│ ├── libidn2
│ │ ├── gettext
│ │ └── libunistring
│ ├── libtasn1
│ ├── libunistring
│ ├── nettle
│ │ └── gmp
│ ├── p11-kit
│ │ └── libffi
│ └── unbound
│ ├── libevent
│ │ └── openssl@1.1
│ └── openssl@1.1
├── lame
├── libass
│ ├── freetype
│ │ └── libpng
│ ├── fribidi
│ └── harfbuzz
│ ├── cairo
│ │ ├── fontconfig
│ │ │ └── freetype
│ │ │ └── libpng
│ │ ├── freetype
│ │ │ └── libpng
│ │ ├── glib
│ │ │ ├── gettext
│ │ │ ├── libffi
│ │ │ ├── pcre
│ │ │ └── python
│ │ │ ├── gdbm
│ │ │ ├── openssl@1.1
│ │ │ ├── readline
│ │ │ ├── sqlite
│ │ │ │ └── readline
│ │ │ └── xz
│ │ ├── libpng
│ │ ├── lzo
│ │ └── pixman
│ ├── freetype
│ │ └── libpng
│ ├── glib
│ │ ├── gettext
│ │ ├── libffi
│ │ ├── pcre
│ │ └── python
│ │ ├── gdbm
│ │ ├── openssl@1.1
│ │ ├── readline
│ │ ├── sqlite
│ │ │ └── readline
│ │ └── xz
│ ├── graphite2
│ └── icu4c
├── libbluray
│ ├── fontconfig
│ │ └── freetype
│ │ └── libpng
│ └── freetype
│ └── libpng
├── libsoxr
├── libvidstab
├── libvorbis
│ └── libogg
├── libvpx
├── opencore-amr
├── openjpeg
│ ├── libpng
│ ├── libtiff
│ │ └── jpeg
│ └── little-cms2
│ ├── jpeg
│ └── libtiff
│ └── jpeg
├── opus
├── rtmpdump
│ └── openssl@1.1
├── rubberband
│ ├── libsamplerate
│ │ └── libsndfile
│ │ ├── flac
│ │ │ └── libogg
│ │ ├── libogg
│ │ └── libvorbis
│ │ └── libogg
│ └── libsndfile
│ ├── flac
│ │ └── libogg
│ ├── libogg
│ └── libvorbis
│ └── libogg
├── sdl2
├── snappy
├── speex
│ └── libogg
├── tesseract
│ ├── leptonica
│ │ ├── giflib
│ │ ├── jpeg
│ │ ├── libpng
│ │ ├── libtiff
│ │ │ └── jpeg
│ │ ├── openjpeg
│ │ │ ├── libpng
│ │ │ ├── libtiff
│ │ │ │ └── jpeg
│ │ │ └── little-cms2
│ │ │ ├── jpeg
│ │ │ └── libtiff
│ │ │ └── jpeg
│ │ └── webp
│ │ ├── jpeg
│ │ ├── libpng
│ │ └── libtiff
│ │ └── jpeg
│ └── libtiff
│ └── jpeg
├── theora
│ ├── libogg
│ └── libvorbis
│ └── libogg
├── x264
├── x265
├── xvid
└── xz