A brew tap for assorted audio and video tools in use at SVT, mainly for encoding purposes.
Currently this tap holds minor modifications of existing core Homebrew formulas - FFmpeg and codecs, but also formulas for a few of the FFmpeg filters released by SVT
- ffmpeg-encore - FFmpeg tailored for encore, with x264, x265, ffmpg-filter-proxy support
- libsrf-proxy-filter - Subtitle Rendering Format filter
- libsvg-proxy-filter - SVG filter
There are a few options.
You can use the pre-built Docker Image, build your own Docker Image from the Dockerfile, or add the Brew tap and build it on your machine.
- Add the tap to your Brew tap configuration, and install the tools you wish
$ brew tap svt/avtools
- Optional: For more info about the tap you could use (example uses jq
$ brew tap-info svt/avtools --json | jq
- Example install
$ brew install ffmpeg-encore
This image is only intended for development and certainly not for production usage. It contains the taps version of the avtools formulas, and a few other apps like mediainfo. Notably, compared to the Formula/ffmpeg-encore does excludes the GPL-incompatible library fdk-aac (but use aac instedI)
You can also build you own Docker Image using the included Dockerfile.
Use of Docker buildx is assumed
Example, located in the project root, using buildx, building the distribution image for the linux/amd64 platform, without the fdk-aac library
$ docker build --target=distribution --platform linux/amd64 --build-arg=FFMPEG_BREW_OPTIONS=--without-fdk-aac . -f docker/Dockerfile.osadl.debian
Available build targets are:
- buildimage
- distribution
- source
Default: If you dont give a --target you will build the distribution image as default - but also all other targets, so set the target, you want to avoid the source target if you don't need it.
Brew Options through the Docker build:
- To build the FFmepg forumla without fdk-aac you could pass the --build-arg FFMPEG_BREW_OPTIONS=--without-fdk-aac
NOTE: If you build your own Docker Image for anything else than internal use, you have to consider how the third party dependencies interact, if you want to avoid building an un-distributable image. A notable example is that you can't include the fdk-aac library together with x264,x265 in the same build, as the fdk-aac license is currently GPL-incompatible.
Currently, the configurations options are few - this might change in the future.
-
The Docker Images could be smaller if it used Alpine, and was optimized regarding dependencies
-
The build uses some libraries installed through apt, so we are not in the Brew eco system totally - in other words, all dependecies used for the avvideo tools are not found in Brew repos, most notably glibc. Run ffmpeg with ldd to see a list.
-
Auditing the Formulas still gives a few warnings, feel free to fix them. To audit them all, from the project's root folder you can run
$ for f in Formula/*.rb; do echo "Processing $f file.."; eval "brew audit --new --formula $f"; done
- The Formulas is not yet keg_only, which could allow to have multiple instances/versions
If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue Tracker
See CONTRIBUTING
-
The Formulas in this project is all released under the BSD 2-clause "Simplified" License
-
The Formula FFmpeg-encore is built on Brew formulas, formulas themselves released under the same BSD-2 License, but also Copyright 2009-present, Homebrew contributors besides SVT.
The binaries the Formulas will build is released under various other licenses, depending on your build options. See the different projects homepages and the license metadata in the docker/misc/LICENSE_THIRD_PARTIES.txt for some guidance to make an informed decision if you intend to distribute any built binaries further.
The Docker Image avtools-osadl-debian image is built on the OSADL Debian base image.
The FFmpeg binary compiled in avtools-osadl-debian is released as under GPLv3 due to being the least common distrubutable license combination.
A corresponding image avtools-osadl-debian-source-image contains corresponding source and license information for the libraries used.
We aim to follow best practices for license compliance, however, if you find something we missed or even plain errors, please let us know so that we can improve this as soon as possible.
To many to mention, the list would be endless here, but a sincerly thanks to projects big or small making this repo possible.