After installing ffmpeg using Homebrew on my late 2012 MacBook Air i7 with macOS 10.12.3, I get this message:
Error: File exists - /usr/local/opt/ffmpeg/.brew
This path is a link to /usr/local/Cellar/ffmpeg/3.2.2/.brew
which ls -al
reveals to contain only the Ruby file, "ffmpeg.rb"
Prior to this I'd installed ffmpeg successfully using brew install ffmpeg
but then uninstalled it to re-install with all the options per brew options ffmpeg
:
brew install ffmpeg --with-chromaprint --with-fdk-aac --with-fontconfig --with-freetype --with-frei0r --with-game-music-emu --with-libass --with-libbluray --with-libbs2b --with-libcaca --with-libebur128 --with-libgsm --with-libmodplug --with-libsoxr --with-libssh --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-rubberband --with-schroedinger --with-sdl2 --with-snappy --with-speex --with-tesseract --with-theora --with-tools --with-two-lame --with-wavpack --with-webp --with-x265 --with-xz --with-zeromq --with-zimg
Now instead of a successful installation end message I get this:
...
==> make install
==> make alltools
Error: File exists - /usr/local/opt/ffmpeg/.brew
With brew uninstall ffmpeg
I've deleted the /usr/local/opt/ffmpeg/
linked directory and the actual /usr/local/Cellar/ffmpeg/
directory. I tried the install again but I get the same error. Of note, it appears that ffmpeg is successfully installed:
$ ffmpeg -version
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.2.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-chromaprint --enable-ffplay --enable-frei0r --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libebur128 --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopus --enable-librtmp --enable-librubberband --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-libzmq --enable-opencl --enable-openssl --enable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.1.2/include/openjpeg-2.1 --enable-nonfree --enable-vda
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libavresample 3. 1. 0 / 3. 1. 0
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Of note, I have used brew prune
, brew update
, brew upgrade
, brew cleanup
, brew doctor
and
$ brew -v
Homebrew 1.1.8
Homebrew/homebrew-core (git revision 35fb; last commit 2017-01-29)
Also of note, considering the error message comes while the install is in the ==> make alltools
phase, I notice in the /usr/local/opt/ffmpeg/.brew/ffmpeg.rb
file the following code:
class Ffmpeg < Formula
...
def install
...
if build.with? "tools"
system "make", "alltools"
bin.install Dir["tools/*"].select { |f| File.executable? f }
end
end
...
end
I am not sure if this is related but since I am using thw --with-tools
option, perhaps the bin.install
is raising the error?
Even with the error message, the resulting install has ffmpeg, ffprobe, ffserver but ffplay
is not recognized as a command…
The INSTALL_RECEIPT.json file indicates that none of the options are being used:
{"homebrew_version":null,"used_options":[],"unused_options":["--with-fdk-aac","--with-libass","--with-libebur128","--with-libsoxr","--with-libssh","--with-tesseract","--with-libvidstab","--with-opencore-amr","--with-openh264","--with-openjpeg","--with-openssl","--with-rtmpdump","--with-rubberband","--with-schroedinger","--with-sdl2","--with-snappy","--with-tools","--with-webp","--with-x265","--with-xz","--with-zeromq","--with-zimg","--without-lame","--without-qtkit","--without-securetransport","--without-x264","--without-xvid","--with-fontconfig","--with-freetype","--with-frei0r","--with-game-music-emu","--with-libbluray","--with-libbs2b","--with-libcaca","--with-libgsm","--with-libmodplug","--with-libvorbis","--with-libvpx","--with-opus","--with-speex","--with-theora","--with-two-lame","--with-wavpack"],"built_as_bottle":true,"poured_from_bottle":true,"installed_as_dependency":true,"installed_on_request":false,"changed_files":["INSTALL_RECEIPT.json","lib/pkgconfig/libavcodec.pc","lib/pkgconfig/libavdevice.pc","lib/pkgconfig/libavfilter.pc","lib/pkgconfig/libavformat.pc","lib/pkgconfig/libavresample.pc","lib/pkgconfig/libavutil.pc","lib/pkgconfig/libpostproc.pc","lib/pkgconfig/libswresample.pc","lib/pkgconfig/libswscale.pc","share/man/man1/ffmpeg-all.1","share/man/man1/ffmpeg-filters.1","share/man/man1/ffprobe-all.1","share/man/man1/ffserver-all.1","share/man/man1/ffserver.1"],"time":1485728076,"source_modified_time":1480980538,"HEAD":null,"stdlib":null,"compiler":"clang","runtime_dependencies":null,"source":{"path":"/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/ffmpeg.rb","tap":"homebrew/core","spec":"stable","versions":{"stable":"3.2.2","devel":null,"head":"HEAD","version_scheme":0}}}
(extra line for ease of scroll viewing)
Why is this error message getting reported and what do I need to do for a successful install with all the options?
————————–UPDATE
Using $ brew install ffmpeg --force --with...
all the above options I still get the same error, but, using:
$ brew unlink ffmpeg && brew link ffmpeg
I unlinked 84 symlinks and then linked 114 (an additional 30 not linked with the install). With that I now at least have ffplay and the INSTALL_RECEIPT.json file has stuff in the "used" section:
{"homebrew_version":"1.1.8","used_options":["--with-chromaprint","--with-fdk-aac","--with-fontconfig","--with-freetype","--with-frei0r","--with-game-music-emu","--with-libass","--with-libbluray","--with-libbs2b","--with-libcaca","--with-libebur128","--with-libgsm","--with-libmodplug","--with-libsoxr","--with-libssh","--with-libvidstab","--with-libvorbis","--with-libvpx","--with-opencore-amr","--with-openh264","--with-openjpeg","--with-openssl","--with-opus","--with-rtmpdump","--with-rubberband","--with-schroedinger","--with-sdl2","--with-snappy","--with-speex","--with-tesseract","--with-theora","--with-tools","--with-two-lame","--with-wavpack","--with-webp","--with-x265","--with-xz","--with-zeromq","--with-zimg"],"unused_options":["--without-lame","--without-qtkit","--without-securetransport","--without-x264","--without-xvid"],"built_as_bottle":false,"poured_from_bottle":false,"installed_as_dependency":false,"installed_on_request":true,"changed_files":null,"time":1485730992,"source_modified_time":1480980538,"HEAD":"e59ada508727f11464595893783beb914c26f60b","stdlib":"libcxx","compiler":"clang","runtime_dependencies":[{"full_name":"lame","version":"3.99.5"},{"full_name":"x264","version":"r2748"},{"full_name":"xvid","version":"1.3.4"},{"full_name":"chromaprint","version":"1.3"},{"full_name":"fdk-aac","version":"0.1.5"},{"full_name":"libpng","version":"1.6.28"},{"full_name":"freetype","version":"2.7.1"},{"full_name":"fontconfig","version":"2.12.1"},{"full_name":"frei0r","version":"1.4"},{"full_name":"game-music-emu","version":"0.6.1"},{"full_name":"gettext","version":"0.19.8.1"},{"full_name":"libffi","version":"3.0.13"},{"full_name":"pcre","version":"8.39"},{"full_name":"glib","version":"2.50.2"},{"full_name":"fribidi","version":"0.19.7"},{"full_name":"libass","version":"0.13.6"},{"full_name":"libbluray","version":"0.9.3"},{"full_name":"flac","version":"1.3.2"},{"full_name":"libogg","version":"1.3.2"},{"full_name":"libvorbis","version":"1.3.5"},{"full_name":"libsndfile","version":"1.0.26"},{"full_name":"libbs2b","version":"3.1.0"},{"full_name":"libcaca","version":"0.99b19"},{"full_name":"speex","version":"1.2.0"},{"full_name":"libebur128","version":"1.2.0"},{"full_name":"libgsm","version":"1.0.13"},{"full_name":"libmodplug","version":"0.8.8.5"},{"full_name":"libsoxr","version":"0.1.2"},{"full_name":"openssl","version":"1.0.2k"},{"full_name":"libssh","version":"0.7.3"},{"full_name":"libvidstab","version":"0.98b"},{"full_name":"libvpx","version":"1.6.1"},{"full_name":"opencore-amr","version":"0.1.4"},{"full_name":"openh264","version":"1.6.0"},{"full_name":"little-cms2","version":"2.8"},{"full_name":"jpeg","version":"8d"},{"full_name":"xz","version":"5.2.3"},{"full_name":"libtiff","version":"4.0.7"},{"full_name":"openjpeg","version":"2.1.2"},{"full_name":"opus","version":"1.1.4"},{"full_name":"rtmpdump","version":"2.4+20151223"},{"full_name":"libsamplerate","version":"0.1.9"},{"full_name":"rubberband","version":"1.8.1"},{"full_name":"orc","version":"0.4.26"},{"full_name":"schroedinger","version":"1.0.11"},{"full_name":"sdl2","version":"2.0.5"},{"full_name":"snappy","version":"1.1.4"},{"full_name":"webp","version":"0.5.2"},{"full_name":"leptonica","version":"1.74.1"},{"full_name":"tesseract","version":"3.04.01"},{"full_name":"theora","version":"1.1.1"},{"full_name":"two-lame","version":"0.3.13"},{"full_name":"wavpack","version":"5.1.0"},{"full_name":"x265","version":"2.2"},{"full_name":"zeromq","version":"4.2.1"},{"full_name":"zimg","version":"2.4"}],"source":{"path":"/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/ffmpeg.rb","tap":"homebrew/core","spec":"stable","versions":{"stable":"3.2.2","devel":null,"head":"HEAD","version_scheme":0}}}
(extra line for ease of scroll viewing)
I recently upgraded from macOS 10.12.2 to 10.12.3 but Homebrew appears up to date as well as xcode-select version 2347
.
————————–UPDATE with pertinent –debug output
$ brew install ffmpeg --debug --with-chromaprint --with-fdk-aac --with-fontconfig --with-freetype --with-frei0r --with-game-music-emu --with-libass --with-libbluray --with-libbs2b --with-libcaca --with-libebur128 --with-libgsm --with-libmodplug --with-libsoxr --with-libssh --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-rubberband --with-schroedinger --with-sdl2 --with-snappy --with-speex --with-tesseract --with-theora --with-tools --with-two-lame --with-wavpack --with-webp --with-x265 --with-xz --with-zeromq --with-zimg
...
==> make install
==> make alltools
...
Fixing /usr/local/opt/ffmpeg/lib/pkgconfig/libavresample.pc permissions from 644 to 444
Fixing /usr/local/opt/ffmpeg/lib/pkgconfig/libavutil.pc permissions from 644 to 444
Fixing /usr/local/opt/ffmpeg/lib/pkgconfig/libpostproc.pc permissions from 644 to 444
Fixing /usr/local/opt/ffmpeg/lib/pkgconfig/libswresample.pc permissions from 644 to 444
Fixing /usr/local/opt/ffmpeg/lib/pkgconfig/libswscale.pc permissions from 644 to 444
Error: File exists - /usr/local/opt/ffmpeg/.brew
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:297:in `mkdir'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:297:in `mkdir'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:297:in `install'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:306:in `install_formula'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:199:in `block in install'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:199:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:199:in `install'
/usr/local/Homebrew/Library/Homebrew/brew.rb:94:in `<main>'
$
Best Answer
Per input from the Homebrew bug report, the problem is specific to installing the
chromaprint
option:Installing FFmpeg with all the Homebrew options except
chromaprint
reports no errors.Of note, installing without the
chromaprint
flag,ffplay
works after the install without the need for using the additional command:brew unlink ffmpeg && brew link ffmpeg
.Also of note, installation of
ffmpeg
with thechromaprint
option seems to preventffplay
from becoming available. I am not sure what else might be compromised by this Homebrew installation bug, but otherwise,ffmpeg
seems functional when installed with thechromaprint
option. Even with the error message, an installation using the--with-chromaprint
option renders the install enabled with thechromaprint
option (per the INSTALL_RECEIPT.json file and the "enabled options" reported in the configuration) - includingfpcalc
.FFMPEG document on chromaprint formats.
Lukáš Lalinský's "Introducing Chromaprint" and "How does Chromaprint work?"