ffmpeg-build-script
ffmpeg-build-script copied to clipboard
x264 linking error fix, pip3 meson/ninja fix, VapourSynth added, updated libs
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