FFmpeg 8.0 “Huffman”: new features, Vulkan codecs, and performance improvements

ffmpeg_logo

After almost a year of development and with several delays derived from the modernization of its infrastructure, it became known el Release of the new version of FFmpeg 8.0 “Huffman”, one of the most relevant versions of the renowned multimedia package.

The new version not only introduces major technical improvements, but also strengthens its development infrastructure with the implementation of a new Forge at code.ffmpeg.org, based on Forgejo, in addition to a complete update of its mailing list servers.

Main new features of FFmpeg 8.0 “Huffman”

One of the most striking advances in FFmpeg 8.0 is the incorporation of codecs based on the Vulkan 1.3 graphics API, which leverage compute shaders for superior performance. Thanks to this technology,FFV1 encoding and decoding and ProRes RAW decoding reach new heights of efficiency by parallelizing operations.

The developers are also working on the Vulkan implementation for ProRes and VC-2, currently in the testing phase. In addition, Vulkan is used for hardware acceleration for decoding VP9, ​​VVC (VAAPI), and H.264. (OpenHarmony), as well as in AV1 and H.264 encoding.

New decoders and encoders

Another of the improvements that this new version of FFmpeg 8.0 presents is the expanded compatibility with new formats and between new decoders are APV (Advanced Professional Video), ProRes RAW, RealVideo 6.0, Sanyo LD-ADPCM, Xbox ADPCM IMA and G.728. In addition, a encoder for APV, supported by the libopenapv library.

El VVC (H.266) decoder now supports extensions like IBC (Copy between Blocks), SSC (Screen Content Encoding), ACT (Adaptive Color Transformation) and palette mode. A VAAPI-based version of the decoder was also added, as well as the ability to use VVC inside Matroska containers.

Another highlight is the alpha channel encoding in libx265, support for animated JPEG XL using libjxl, and improved multitrack audio and video handling in FLV v2.

Optimization and new features

El Overall performance also receives improvements through AVX-512 based optimizations, which significantly speed up certain decoding operations. The improvement is overwhelming: the new code achieves acceleration between 23 and 28 times faster compared to the basic C version, which represents one of the most notable performance increases in the recent history of this project.

The work was led by Niklas Haas, who implemented the AVX-512 version of the vf_bwdif filter. Thanks to this advancement, users processing video on modern Intel and AMD processors with AVX-512 support will see significantly reduced rendering and conversion times for interlaced content.

In concrete numbers, the bwdif8_avx512 variant is 23.28 times faster, while bwdif10_avx512 achieves a speedup of 28,27 times over the baseline in C. Even when compared to the previously optimized version with AVX2, the new code almost doubles the performance.

In the section filters, including new features such as Whisper, which integratesautomatic speech recognition with neural networks, color detection for alpha ranges, pad_cuda for adding padding with CUDA and scale_d3d11, which allows you to scale videos using Direct3D 11.

Project cleanup and modernization

La Version 8.0 also marks the end of several technologies considered obsolete. Support for OpenSSL versions prior to 1.1.0 has been dropped, the yasm assembler has been deprecated in favor of nasm, and OpenMAX-based encoders have been officially deprecated. Additionally, TLS certificate verification is now enabled by default, a major security change.

Finally for those interested in knowing more about it about this new release, you can check the full changelog this link.

Download and get FFmpeg 8.0

Finally, pFor those who want to install or update FFmpeg 8.0 You should know that this package is found in most Linux distributions or if you prefer, you can download its source code for compilation. from the link below.

And to perform the installation from the source code, it is enough to execute the already known script:

./configure make make install

For those who are users of Ubuntu, Debian or any other derivative of these distributions, simply open a terminal and execute the following command:

sudo apt install ffmpeg