Mac
GitHub
ffmpeg
HEVC
H.265

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

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

streampack 木村です。

1月にディスプレイ出力不良で交換してもらった業務 Macbook が頻繁に固まるんですよ。

日に何度もフリーズ、酷いときは勝手に再起動したりしてストレスがマッハに!

いい加減業務に支障をきたすので新しい Macbook に変えてもらい環境構築中。

ffmpeg をインストールしようとして以前と同じ方法

インストールコマンド一発! MAC の ffmpeg で H.265(HEVC) を使えるようにする

で brew で入れようとしたら


$ 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


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

スクリーンショット 2019-04-15 19.12.48.png

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


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

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

$ brew install ffmpeg


$ 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