ffmpeg-tinderbox
ffmpeg-tinderbox copied to clipboard
A script, tinderbox, that automates checking out FFmpeg source and building it include nonfree libraries like libfdk-aac and decklink
Essentially it's a tool, tinderbox, that automates the process of checking out and building a recent FFmpeg source code, including nonfree libraries such as libfdk-aac and decklink.
For a manual build, follow detailed instructions below:
Prelude
Requirements
Ensure you have the following tools installed on your system:
- Bash
- Docker
Targets, Variants and Addins
Targets:
win64: Build for 64-bit Windowswin32: Build for 32-bit Windows
Variants:
gpl: Builds all libraries fromscripts.dfolder exceptlibfdk-aacanddecklinklgpl: Excludes additional libraries (avisynth,davs2,vidstab,x264,x265andxavs2)nonfree: Includes both non-free libraries (libfdk-aacanddecklink) and all libraries of the gpl variant
Addins:
debug: Adds debug symbols to the build. It'sgdbcompatible embedded debug info
Building
- Build base-image:
docker build -t ghcr.io/nanake/base-${TARGET}:latest images/base-${TARGET}
Note: You might need to modify the rootfs image by specifying a public image base, such as fedora:rawhide.
- Build target-variant image:
./generate.sh ${TARGET} ${VARIANT}
docker build -t ghcr.io/nanake/${TARGET}-${VARIANT}:latest .
Alternatively, You can build both base-image and target-variant image by simply invoke makeimage.sh. For example:
./makeimage.sh win64 nonfree
- Build FFmpeg
./build.sh ${TARGET} ${VARIANT} ${ADDINS}
To create a shared build of FFmpeg, append -shared to the VARIANT name. For example:
./build.sh win64 gpl-shared
Upon successful build completion, the build artifacts will be available in the artifacts folder.
Acknowledgments
The foundation for this build script comes from the work of BtbN.