FFmpeg 8.0 "Huffman" introduces Vulkan compute-based codecs
FFmpeg 8.0 introduces a new class of decoders and encoders powered by Vulkan compute shaders, enabling high-performance video processing on any Vulkan 1.3 compatible hardware.
Summary
The FFmpeg project has released version 8.0, codenamed "Huffman," marking one of its largest updates to date. The release focuses heavily on modernization, both in infrastructure and media processing capabilities. A standout feature is the introduction of codecs implemented via pure Vulkan compute shaders, which allows for significant speedups in parallelized tasks like FFv1 encoding and ProRes RAW decoding without requiring specific proprietary hardware accelerators. Additionally, the release adds several native decoders, hardware acceleration support for Vulkan and OpenHarmony, and migrates the project's contribution forge to a Forgejo instance.
Technical advancements in FFmpeg 8.0
- Vulkan Compute Implementation: A new category of codecs (FFv1 and ProRes RAW) uses compute shaders instead of fixed-function hardware accelerators, ensuring compatibility with any Vulkan 1.3 implementation.
- Expanded Hardware Acceleration: Added support for Vulkan VP9 decoding, VAAPI VVC, and hardware-accelerated H264/H265 encoding/decoding for OpenHarmony.
- New Native Decoders: Includes support for APV, ProRes RAW, RealVideo 6.0, Sanyo LD-ADPCM, and G.728.
- Infrastructure Modernization: The project has migrated its contribution forge to a self-hosted Forgejo instance at code.ffmpeg.org and upgraded its mailing list servers.
Why it matters
By leveraging Vulkan compute shaders, FFmpeg provides a standardized way to achieve high-performance video processing across diverse GPU architectures. This reduces reliance on vendor-specific APIs and benefits developers of non-linear editors and lossless streaming tools.
What to do
- Users, distributors, and system integrators should upgrade to FFmpeg 8.0 unless they use current git master.
- To use the new Vulkan compute-based codecs, enable Vulkan decoding, and for encoders like ffv1_vulkan, specify the new encoder.
Original reference: ffmpeg.org →