You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Eleven new libraries.librubberband, libssh, chromaprint, libsnappy, libtwolame, libgme, libopenmpt, openal and libpulse — every library that both
Ubuntu's ffmpeg package and BtbN/FFmpeg-Builds ship and this script did not — plus libbluray (with libudfread) for Blu-ray playback. Only librubberband is 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 libplacebo and libopenh264.
libopenjpeg and libvmaf for JPEG 2000 and for video quality scoring.
libvpl — the oneVPL dispatcher, for Intel Quick Sync on modern hardware.
frei0r and ladspa plugin support (skipped in --full-static builds, where a static
binary cannot dlopen() anything).
xz and bzip2 are built from source, so lzma and bzlib support 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.
libtiff was 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.gz asset 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 against SCRIPT_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 as gnu17; yasm is 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 pip3 no 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.