The FFmpeg developers have added Vulkan-accelerated video decoding for Apple ProRes, implemented through shader-based hardware acceleration. The new commit, authored by averne and committed by Lynne, brings full support for all major ProRes profiles and demonstrates strong performance across different GPU platforms.
Apple ProRes is a high-quality video codec commonly used in professional editing workflows. Until now, decoding was primarily CPU-bound. The latest FFmpeg update introduces a Vulkan-based decoder that uses GPU shaders to handle ProRes decoding even though ProRes is not officially part of the Vulkan Video specification.
The implementation relies on two shaders. The VLD kernel performs entropy decoding for color and alpha data, while the IDCT kernel handles the inverse transform for color components. This approach provides compatibility across all Vulkan-supported GPUs since it doesn’t depend on native ProRes hardware decoding.
Recommended: How to Install Multimedia Codecs on Ubuntu Linux
All profiles up to ProRes 4444 XQ are supported, including 4:2:2 and 4:4:4 chroma subsampling, 10-bit and 12-bit depth, interlaced content, and alpha channel.
Benchmark results show solid performance for 4K yuv422p10 samples: AMD Radeon 6700XT achieved 178 FPS, Intel i7 Tiger Lake reached 37 FPS, and NVIDIA Orin Nano delivered 70 FPS. These results confirm efficient GPU utilization across different device categories.
The commit adds several new Vulkan-related files under libavcodec/, including prores_idct.comp, prores_reset.comp, prores_vld.comp, and vulkan_prores.c. This follows previous work on Vulkan acceleration for Apple ProRes RAW decoding.
This shader-based ProRes decoder represents a major step forward for FFmpeg’s hardware acceleration framework. It enables faster video playback and editing while remaining cross-platform and open-source.

