Permalink
| class Ffmpeg < Formula | |
| desc "Play, record, convert, and stream audio and video" | |
| homepage "https://ffmpeg.org/" | |
| url "https://ffmpeg.org/releases/ffmpeg-4.3.2.tar.xz" | |
| sha256 "46e4e64f1dd0233cbc0934b9f1c0da676008cad34725113fb7f802cfa84ccddb" | |
| # None of these parts are used by default, you have to explicitly pass `--enable-gpl` | |
| # to configure to activate them. In this case, FFmpeg's license changes to GPL v2+. | |
| license "GPL-2.0-or-later" | |
| revision 3 | |
| head "https://github.com/FFmpeg/FFmpeg.git" | |
| livecheck do | |
| url "https://ffmpeg.org/download.html" | |
| regex(/href=.*?ffmpeg[._-]v?(\d+(?:\.\d+)+)\.t/i) | |
| end | |
| bottle do | |
| sha256 arm64_big_sur: "95e9f88efd0f33050d81317f66145e259e391c4c718bbe08ac0db53b0a3a1163" | |
| sha256 big_sur: "ad6fe2b17d24998db46d27a6976da6aa7b6e134f3885bee82089cb57dbeaf2c2" | |
| sha256 catalina: "60e65a454b96487f348098c066028205521402de9e5484ace2732040d9c928bb" | |
| sha256 mojave: "908108f0564c2217b34f002c28183e92edb05b286912f5959c13fe3a821b0482" | |
| end | |
| depends_on "nasm" => :build | |
| depends_on "pkg-config" => :build | |
| depends_on "aom" | |
| depends_on "dav1d" | |
| 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 "libvidstab" | |
| depends_on "libvorbis" | |
| depends_on "libvpx" | |
| depends_on "opencore-amr" | |
| depends_on "openjpeg" | |
| depends_on "opus" | |
| depends_on "rav1e" | |
| depends_on "rubberband" | |
| depends_on "sdl2" | |
| depends_on "snappy" | |
| depends_on "speex" | |
| depends_on "srt" | |
| depends_on "tesseract" | |
| depends_on "theora" | |
| depends_on "webp" | |
| depends_on "x264" | |
| depends_on "x265" | |
| depends_on "xvid" | |
| depends_on "xz" | |
| depends_on "zeromq" | |
| depends_on "zimg" | |
| uses_from_macos "bzip2" | |
| uses_from_macos "libxml2" | |
| uses_from_macos "zlib" | |
| on_linux do | |
| depends_on "libxv" | |
| end | |
| def install | |
| args = %W[ | |
| --prefix=#{prefix} | |
| --enable-shared | |
| --enable-pthreads | |
| --enable-version3 | |
| --enable-avresample | |
| --cc=#{ENV.cc} | |
| --host-cflags=#{ENV.cflags} | |
| --host-ldflags=#{ENV.ldflags} | |
| --enable-ffplay | |
| --enable-gnutls | |
| --enable-gpl | |
| --enable-libaom | |
| --enable-libbluray | |
| --enable-libdav1d | |
| --enable-libmp3lame | |
| --enable-libopus | |
| --enable-librav1e | |
| --enable-librubberband | |
| --enable-libsnappy | |
| --enable-libsrt | |
| --enable-libtesseract | |
| --enable-libtheora | |
| --enable-libvidstab | |
| --enable-libvorbis | |
| --enable-libvpx | |
| --enable-libwebp | |
| --enable-libx264 | |
| --enable-libx265 | |
| --enable-libxml2 | |
| --enable-libxvid | |
| --enable-lzma | |
| --enable-libfontconfig | |
| --enable-libfreetype | |
| --enable-frei0r | |
| --enable-libass | |
| --enable-libopencore-amrnb | |
| --enable-libopencore-amrwb | |
| --enable-libopenjpeg | |
| --enable-libspeex | |
| --enable-libsoxr | |
| --enable-libzmq | |
| --enable-libzimg | |
| --disable-libjack | |
| --disable-indev=jack | |
| ] | |
| on_macos do | |
| # Needs corefoundation, coremedia, corevideo | |
| args << "--enable-videotoolbox" | |
| end | |
| system "./configure", *args | |
| system "make", "install" | |
| # Build and install additional FFmpeg tools | |
| system "make", "alltools" | |
| bin.install Dir["tools/*"].select { |f| File.executable? f } | |
| # Fix for Non-executables that were installed to bin/ | |
| mv bin/"python", pkgshare/"python", force: true | |
| 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 |