Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does ffmpeg need DNS resolver as its dependencies?

I was installing FFmpeg and libav today using brew install ffmpeg libav when I noticed unbound in the dependencies list.

It's very strange because unbound is DNS resolver and why ffmpeg would need it.

❯ 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

I even checked the info list for ffmpeg but unbound was not present there

❯ 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)

Links for reference

  • https://formulae.brew.sh/formula/ffmpeg
  • https://formulae.brew.sh/formula/unbound
like image 279
Kshitij Avatar asked Dec 19 '19 05:12

Kshitij


2 Answers

brew deps --tree can help you figure this out. In the case of ffmpeg, unbound is pulled in by gnutls for HTTPS support.

% 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
│       │   └── [email protected]
│       └── [email protected]
├── lame
├── libass
│   ├── freetype
│   │   └── libpng
│   ├── fribidi
│   └── harfbuzz
│       ├── cairo
│       │   ├── fontconfig
│       │   │   └── freetype
│       │   │       └── libpng
│       │   ├── freetype
│       │   │   └── libpng
│       │   ├── glib
│       │   │   ├── gettext
│       │   │   ├── libffi
│       │   │   ├── pcre
│       │   │   └── python
│       │   │       ├── gdbm
│       │   │       ├── [email protected]
│       │   │       ├── readline
│       │   │       ├── sqlite
│       │   │       │   └── readline
│       │   │       └── xz
│       │   ├── libpng
│       │   ├── lzo
│       │   └── pixman
│       ├── freetype
│       │   └── libpng
│       ├── glib
│       │   ├── gettext
│       │   ├── libffi
│       │   ├── pcre
│       │   └── python
│       │       ├── gdbm
│       │       ├── [email protected]
│       │       ├── 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
│   └── [email protected]
├── 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
like image 58
jonchang Avatar answered Oct 19 '22 20:10

jonchang


On Homebrew unbound is a dependency of gnutls which is a dependency of ffmpeg when using --enable-gnutls (which is used by default in the ffmpeg Homebrew formulae).

gnutls (or openssl, mbedtls, libtls, securetransport) is used in ffmpeg for HTTPS support.

like image 30
llogan Avatar answered Oct 19 '22 18:10

llogan