Skip to content

Conversation

Stefan-Olt
Copy link
Contributor

I have updated libs, made some minor fixes and included Vulkan and OpenCL libraries for more hardware acceleration options. Both Vulkan and OpenCL load the driver dynamically at runtime when needed, so FFmpeg can be build and used with Vulkan and OpenCL support compiled in when no supported hardware is available. Verified that no additional dependencies to shared libraries were created.
I also updated the README and added OpenCL/Vulkan to the acceleration list

Vulkan

Added support for Vulkan, can be used for video encode/decode as well as filters for GPU acceleration. Custom codecs can be implemented using shaders (currently FFV1 and ProRes RAW, more to come in next FFmpeg release). For the shader code a shader compiler library is also needed, which is also statically linked in.
Also enabled on macOS, as FFmpeg will use MoltenVK (it is explicitly looking for it), but not all features are supported.

OpenCL

Added support for OpenCL, used by filters for GPU acceleration. Not enabled on macOS, as Apple discontinued support for OpenCL.

Updates libraries

Mostly bug fix updates, svt-av1 having some speed/quality optimizations, libwebp also got some optimizations:

  • giflib 5.2.1 -> 5.2.2
  • openssl 3.5.0 -> 3.5.2
  • gnutls 3.8.5 -> 3.8.10
  • svtav1 3.0.2 -> 3.1.2
  • rav1e 0.8.0 -> 0.8.1
  • av1 3.12.1 -> 3.13.0
  • zimg 3.0.5 -> 3.0.6
  • libogg 1.3.5 -> 1.3.6
  • libpng 1.6.48 -> 1.6.50
  • libwebp 1.5.0 -> 1.6.0
  • libsdl 2.32.8 -> 2.32.10

Fixes

  • sratom and lilv won't build if some doc tools are available, because some other lv2 doc template dependencies are missing. Disabled building docs for these libs using command-line argument to meson

Changes in build script

  • Since ffmpeg 8 the patch I implemented to be able to compile against the svt-av1 >= 3.0.0 API is not needed anymore, removed
  • giflib doesn't need a patch for macOS anymore, but for Linux if some tools for creating the docs are not available. Patch disables doc building on Linux (is already disabled on macOS)

@markus-perl markus-perl merged commit 5289668 into markus-perl:master Sep 9, 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.

2 participants