After ten months of development the release of the new version of FFmpeg 5.0 was announced, which includes a set of applications and a collection of libraries for operations on various multimedia formats (recording, conversion and decoding of audio and video formats).
The significant change in the version number is due to significant API changes and the transition to a new release generation scheme, according to which new major releases will be formed once a year, and releases with extended support time – once every two years. FFmpeg 5.0 will be the first LTS version of the project.
Main novelties of FFmpeg 5.0
In this new version significant cleanup of old APIs for encoding and decoding, as well as transitioning to the new N:M API, which offers a single programming interface for audio and video, as well as separate codecs for input and output streams.
Too it is mentioned that all previously marked old APIs were removed deprecated and added a new API for bitstream filters.
In addition to that, added separate formats and codecs: Media container unpackers no longer integrate the full decoder context. Removed APIs for registering codecs and formats: all formats are now always registered.
was added support for the LoongArch architecture used in Loongson processors, as well as support for the LSX and LASX SIMD extensions provided in LoongArch. Specific LoongArch optimizations have been implemented for H.264, VP8 and VP9 codecs.
was added support for the concatf protocol, which defines the format for transferring a list of resources (“ffplay concatf:split.txt”), also added new decoders: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (bitmaps), new encoders: packed in bits, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes. The AAC encoder settings have been changed to achieve higher quality.
On the other hand, it is also noted that media container packers were added (muxer): Westwood AUD, Argonaut Games CVG, AV1 (Low Overhead Bitstream), Added Media Container Unpackers (demuxer): IMF, Argonaut Games CVG.
Added a new parser for the AMR (Adaptive Multi-Rate) audio codec and added a payload data packer (packer) for transferring uncompressed video using the RTP protocol (RFC 4175).
As for the new video filters:
- segment and segment: splitting a stream with video or sound into multiple streams divided by time or frames.
- hsvkey and hsvhold: Replace part of the HSV color gamut in the video with grayscale values.
- grayworld: using an algorithm based on the gray world hypothesis.
- scharr: application of the Orb operator (a variant of the Sobel operator with different coefficients) to the input video.
- morpho: Allows you to apply various morphological transformations to the video.
- latency: Measures the minimum and maximum filter delay for the previously applied filter.
- limitdiff: Defines the difference between two or three video streams.
- xcorrelate: Calculates the cross-correlation between video streams.
- varblur: variable video blur with blur radius definition of the second video.
- bone saturation: Apply hue, saturation, or vividness adjustments to the video.
- color spectrum: Generate a video stream with a given color spectrum.
- libplacebo: Application for rendering HDR shaders from the libplacebo library.
- vflip_vulkan, hflip_vulkan, and flip_vulkan: are variants of vertical or horizontal video flipping filters (vflip, hflip, and flip) implemented using the Vulkan graphics API.
- yadif_videotoolbox: A variant of the yadif deinterlacing filter based on the VideoToolbox framework.
Finally For those who are interested in knowing more about it about this new release, you can check the full changelog in this link.
While for those who want to install or upgrade of FFmpeg 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 following link.