Highlights
- Eleven new libraries.
librubberband,libssh,chromaprint,libsnappy,
libtwolame,libgme,libopenmpt,openalandlibpulse— every library that both
Ubuntu's ffmpeg package and BtbN/FFmpeg-Builds ship and this script did not — plus
libbluray(withlibudfread) for Blu-ray playback. Onlylibrubberbandis licence-gated. - Vulkan filtering and libplacebo. A GLSL compiler (
glslang, SPIRV-Tools, SPIRV-Headers,
Vulkan-Headers) is now built, so the Vulkan filters actually work, together with
libplaceboandlibopenh264. libopenjpegandlibvmaffor JPEG 2000 and for video quality scoring.libvpl— the oneVPL dispatcher, for Intel Quick Sync on modern hardware.frei0randladspaplugin support (skipped in--full-staticbuilds, where a static
binary cannotdlopen()anything).xzandbzip2are built from source, solzmaandbzlibsupport no longer depends
on whatever happens to be installed on the host.- Docker images move to Ubuntu 26.04; the supported Linux baseline rises to Ubuntu 24.04
and Debian 13. libtiffwas dropped — ffmpeg has never consumed it.
Integrity
- Every package is pinned to a SHA-256 checksum. Versions and checksums live in one table
at the top of the script, and a download whose hash does not match is discarded and retried
rather than built. - Releases now ship a
ffmpeg-build-script.tar.gzasset alongside a
ffmpeg-build-script.tar.gz.sha256, built by CI from the tagged commit and published only
after the full build matrix passes. The tag is also checked againstSCRIPT_VERSION, so a
release cannot ship a version string that disagrees with its tag.
Fixes
- GCC 15 compatibility. The GPL packages that GCC 15 rejects now build, and the pre-C23
packages are compiled asgnu17;yasmis taken from master, since the last release
predates the fix. - A yasm parallel-build race. Its x86 tables are now generated serially — the parallel
path could produce a corrupt build under-j. - x265 SIMD extensions the compiler cannot target are disabled, instead of failing the
build. - pkg-config now searches the host's own multiarch directory, so system libraries are
found on distributions that use one. - meson is upgraded when the distribution's is too old for libplacebo, and a failing
pip3no longer ends the whole build.
Housekeeping
- Contributing guidelines, a security policy, and a documented set of repository conventions.
- The README is restructured around per-platform build instructions and now documents what
each optional library actually enables. - Both shell scripts are clean at
shellcheck --severity=style.