Skip to content

V1.61

Latest

Choose a tag to compare

@markus-perl markus-perl released this 08 Aug 15:35
· 7 commits to master since this release

Highlights

  • 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.