- Create and enter an isolated build environment that matches the host GPU stack:
toolbox create -c ffmpeg-build -i registry.fedoraproject.org/fedora-toolbox:43 toolbox enter ffmpeg-build
- Bring in RPM Fusion (needed for fdk-aac) and install the exact dependency set that the Containerfile uses:
sudo dnf -y upgrade --refresh sudo dnf -y install dnf-plugins-core \ https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \ https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm sudo dnf -y groupinstall "Development Tools" "Development Libraries" sudo dnf -y install git jq python3 python3-requests python3-pip curl wget tree file vim less which rsync \ autoconf automake libtool cmake meson ninja-build pkgconf-pkg-config perl texinfo tar bzip2 bzip2-devel xz xz-devel zlib-devel expat-devel gperf nasm yasm patch diffutils findutils \ gcc gcc-c++ make libdrm-devel libva libva-devel mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers mesa-libgbm-devel mesa-libGL-devel mesa-libEGL-devel \ libX11-devel libXau-devel libXext-devel libXfixes-devel libXrandr-devel libXrender-devel libXdamage-devel libXi-devel libxcb-devel \ libogg-devel opus-devel libvorbis-devel libtheora-devel lame-devel x264-devel x265-devel aom-devel svt-av1-devel dav1d-devel \ libvpx-devel libwebp-devel libpng-devel libjpeg-turbo-devel libtiff-devel freetype-devel fontconfig-devel harfbuzz-devel fribidi-devel libass-devel \ libxml2-devel libbluray-devel libvidstab-devel libzimg-devel libaribb24 libaribb24-devel openjpeg2-devel libsrt-devel zeromq-devel libcurl-devel openssl-devel libuuid-devel \ libplacebo-devel rav1e-devel libjxl-devel shaderc-devel glslang-devel spirv-tools-devel vulkan-loader-devel librtmp-devel libsmbclient samba-devel libva-utils sudo dnf clean all
- Run the existing helper scripts from this repository inside the toolbox:
export PREFIX=/opt/ffmpeg export WORKDIR=$PWD # scripts read manifests from $WORKDIR ./generate-source-of-truth-ffmpeg-versions.py --library-list kvazaar,libvmaf,whisper ./download_tarballs.sh ./build_source.sh ./generate-source-of-truth-ffmpeg-versions.py --library-list ffmpeg-8.0 ./download_tarballs.sh ./build_source.sh ./install_ffmpeg.sh
- Copy
/opt/ffmpeg(or/usr/localif you ran the installer) out of the toolbox withtoolbox run --container ffmpeg-build tar -C / -cf - opt/ffmpeg | tar -C /desired/host/path -xf -or by usingpodman cpif you built via container.
The scripts now copy both /usr/lib64 and /usr/lib dependencies, set the Fedora-specific PKG_CONFIG_PATH, and enable the extra FFmpeg features (libplacebo, librav1e, libjxl, libshaderc, librtmp, libsmbclient, vulkan) automatically.