Homebrew の ffmpeg でいつの間にかインストールオプションが無くなってた件・・・

GW は一人バイクで放浪の旅に出ます。
streampack 木村です。

1月にディスプレイ出力不良で交換してもらった業務 Macbook が頻繁に固まるんですよ。
日に何度もフリーズ、酷いときは勝手に再起動したりしてストレスがマッハに！

いい加減業務に支障をきたすので新しい Macbook に変えてもらい環境構築中。
ffmpeg をインストールしようとして以前と同じ方法
[インストールコマンド一発！ MAC の ffmpeg で H.265(HEVC) を使えるようにする](https://qiita.com/tomopyonsama/items/4778b395fd72e4627828)
で brew で入れようとしたら



```bash

$ brew install ffmpeg --with-fdk-aac --with-freetype --with-libass --with-libvpx  --with-sdl2 --with-x265

Error: invalid option: --with-fdk-aac
```

**怒られたよ！ 何で？？**


# Github を見てみる

https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb

`option` が無いよ・・・

```ffmpeg.rb
class Ffmpeg < Formula
  desc "Play, record, convert, and stream audio and video"
  homepage "https://ffmpeg.org/"
  url "https://ffmpeg.org/releases/ffmpeg-4.1.3.tar.xz"
  sha256 "0c3020452880581a8face91595b239198078645e7d7184273b8bcc7758beb63d"
  head "https://github.com/FFmpeg/FFmpeg.git"

  bottle do
    sha256 "14a4dc07d1ffb6d44d90adb72185434d6c0127cf26a8ebd05ca64fa2c4baca56" => :mojave
    sha256 "761b20937690043ced7797a18538e5adf32cda5d557810dca030ddd0cd4cd5ec" => :high_sierra
    sha256 "8bf6a1fda6bc5adcb6dc1b89e1886dbdb2a8730d146d7fdd7ed43f4dee07d663" => :sierra
  end

  depends_on "nasm" => :build
  depends_on "pkg-config" => :build
  depends_on "texi2html" => :build

  depends_on "aom"
  depends_on "fontconfig"
  depends_on "freetype"
  depends_on "frei0r"
  depends_on "gnutls"
  depends_on "lame"
  depends_on "libass"
  depends_on "libbluray"
  depends_on "libsoxr"
  depends_on "libvorbis"
  depends_on "libvpx"
  depends_on "opencore-amr"
  depends_on "openjpeg"
  depends_on "opus"
  depends_on "rtmpdump"
  depends_on "rubberband"
  depends_on "sdl2"
  depends_on "snappy"
  depends_on "speex"
  depends_on "tesseract"
  depends_on "theora"
  depends_on "x264"
  depends_on "x265"
  depends_on "xvid"
  depends_on "xz"

  def install
    args = %W[
      --prefix=#{prefix}
      --enable-shared
      --enable-pthreads
      --enable-version3
      --enable-hardcoded-tables
      --enable-avresample
      --cc=#{ENV.cc}
      --host-cflags=#{ENV.cflags}
      --host-ldflags=#{ENV.ldflags}
      --enable-ffplay
      --enable-gnutls
      --enable-gpl
      --enable-libaom
      --enable-libbluray
      --enable-libmp3lame
      --enable-libopus
      --enable-librubberband
      --enable-libsnappy
      --enable-libtesseract
      --enable-libtheora
      --enable-libvorbis
      --enable-libvpx
      --enable-libx264
      --enable-libx265
      --enable-libxvid
      --enable-lzma
      --enable-libfontconfig
      --enable-libfreetype
      --enable-frei0r
      --enable-libass
      --enable-libopencore-amrnb
      --enable-libopencore-amrwb
      --enable-libopenjpeg
      --enable-librtmp
      --enable-libspeex
      --enable-videotoolbox
      --disable-libjack
      --disable-indev=jack
      --enable-libaom
      --enable-libsoxr
    ]

    system "./configure", *args
    system "make", "install"

    # Build and install additional FFmpeg tools
    system "make", "alltools"
    bin.install Dir["tools/*"].select { |f| File.executable? f }
  end

  test do
    # Create an example mp4 file
    mp4out = testpath/"video.mp4"
    system bin/"ffmpeg", "-filter_complex", "testsrc=rate=1:duration=1", mp4out
    assert_predicate mp4out, :exist?
  end
end
```

どうやら以下で消滅した模様

<img width="996" alt="スクリーンショット 2019-04-15 19.12.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/7e4877f5-5fdb-4ef0-8ef4-4e41be647fa4.png">


https://github.com/Homebrew/homebrew-core/commit/f75cb092032c2eb921ba0bcdcf6a45af5cf86714#diff-8f4deb87ce96b9c5efe97be3288bb406

# んでどうすりゃ H.265 を使えるの？

何もしなくて良いです。デフォルトでインストールされます。全部入りです！

```
$ brew install ffmpeg
```


```bash

$ brew ls
aom         gmp         libogg          opencore-amr    snappy
cairo       gnutls      libpng          openjpeg        speex
ffmpeg      graphite2   libsamplerate   openssl         sqlite
flac        harfbuzz    libsndfile      opus            tesseract
fontconfig  icu4c       libsoxr         p11-kit         theora
freetype    jpeg        libtasn1        pcre            unbound
frei0r      lame        libtiff         pixman          webp
fribidi     leptonica   libunistring    python          x264
gdbm        libass      libvorbis       readline        x265
gettext     libbluray   libvpx          rtmpdump        xvid
giflib      libevent    little-cms2     rubberband      xz
glib        libffi      nettle          sdl2
```

# 最後に

オチとしては**「インストールオプションが無くなってた」**ってことなんですが、`$ brew options ffmpeg` でも何も表示されないし。
これが分かるまでに `Error: invalid option: --with-fdk-aac` でggったり、結構色々とネットの海をうろちょろしてしまいました。



ココとか
https://github.com/Homebrew/homebrew-core/issues/31510

ココとか
https://github.com/Homebrew/brew/issues/5732

オプション指定しなくていいのは楽ですが、全部入っちゃうのはどうなんでしょうねえ。

#4/19追記

@ohokihai さんからコメントを頂戴したので。

一応記事のままでも内蔵AACはインストールされますので、`-acodec aac` でエンコードが可能です。

ただし、ffmpeg 公式でも品質は `fdk-aac` > `内蔵AAC` と言われていますので、 `fdk-aac` を使いたい場合は https://github.com/varenc/homebrew-ffmpeg で今まで通りオプション付きでインストールすることができます。

https://trac.ffmpeg.org/wiki/Encode/HighQualityAudio