Skip to content

x264 linking error fix, pip3 meson/ninja fix, VapourSynth added, updated libs #246

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 24, 2025

Conversation

Stefan-Olt
Copy link
Contributor

x264 linking error fix

On several different Linux machines I experienced linking errors during building of x264 (symbols defined twice). I traced it down to the nasm version. Downgrading nasm from 2.16.03 to 2.16.01 resolved the issue.

pip3 meson/ninja fix

Many Linux distributions (for example Debian, Ubuntu, Linux Mint) have disabled pip3 for installing packages outside specific python environments, as this could break system packages. The ffmpeg-build-script always tried to run pip3, even though meson/ninja is installed and this will cause the script to terminate (several issues are opened on this). I changed it, so that meson/ninja is now checked first and only if those commands cannot be found pip3 is used. The script will also display information when trying to use pip3 and inform about the possible error and how this can be resolved by installing meson using the package manager

VapourSynth added

VapourSynth is a frame server build around Python and a modern alternative to AviSynth. I enabled the input module in ffmpeg for it. There is no need to build VapourSynth for that, ffmpeg just needs the header files to be able to compile support for it (if a VapourSynth-Script is opened, ffmpeg will load the library (if installed) at runtime)

Updated several libs

  • rav1e from 0.7.1 to 0.8.0
  • amf from 1.4.35 to 1.4.36
  • av1 from 3.11.0 to 3.12.1
  • libsdl from 2.30.1 to 2.32.8
  • libvpx from 1.15.0 to 1.15.2
  • x264
  • OpenSSL from 1.1.1w to 3.5.0: The 1.x series is not maintained anymore and has known vulnerabilities. ffmpeg builds fine with the new OpenSSL. It also doesn't need special build options for Apple Silicon anymore
  • libtheora from 1.1.1 to 1.2.0: This is a cleanup release with some assembly added, will now build on Apple Silicon without the need for patching
  • libsvt1 from 2.3.0 to 3.0.2: This is a major update with speed/quality improvements. It has a minimal API change (an unused parameter was removed). ffmpeg master is already updated for that, 7.1.1 is not, so the one line in ffmpeg is changed by the script, that can be removed with the next majot ffmpeg update

@Stefan-Olt
Copy link
Contributor Author

I tested compilation on Ubuntu 24.04, Linux Mint 22.1, Debian 12, macOS 14 (Intel) and macOS 14 (Apple Silicon), works everywhere.

@hashworks
Copy link

I feel like this should be split into multiple PRs?

@markus-perl
Copy link
Owner

The commit looks good, all tests are running. I was on vacation and therefore had no time to merge yet. I will merge it into the main branch. Thx for the work.

@markus-perl markus-perl merged commit 5a03e3b into markus-perl:master Jun 24, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants