After ten months of development, the multimedia package FFmpeg 5.0 is now available, including a set of applications and a collection of libraries for operations with various multimedia formats (recording, converting, and decoding audio and video formats). The package is distributed under the LGPL and GPL licenses, and FFmpeg development is closely tied to the MPlayer project. The significant change in the version number is explained by substantial modifications to the API and a transition to a new release scheme, under which new major releases will occur annually, while releases with extended support will happen every two years. FFmpeg 5.0 will be the first LTS release of the project.
Key changes added in FFmpeg 5.0 include:
- A considerable cleanup of the old APIs for encoding and decoding has been completed, and a new N:M API has been implemented, offering a unified programming interface for audio and video, as well as separating codecs for input and output streams. All old APIs that were previously marked as deprecated have been removed. A new API for bitstream filters has been added. Formats and codecs have been separated β media container unpackers no longer embed the entire context of decoders. APIs for registering codecs and formats have been removed β all formats are now always registered.
- The libavresample library has been removed.
- A simpler API based on AVFrame has been added to the libswscale library.
- Significant improvements have been made to Vulkan graphics API support.
- Support for hardware-accelerated decoding and encoding of VP9 and ProRes formats has been added using the VideoToolbox API.
- Support for the LoongArch architecture used in Loongson processors has been added, along with support for SIMD extensions LSX and LASX provided in LoongArch. Specific optimizations for LoongArch have been implemented for H.264, VP8, and VP9 codecs.
- Support for the Concatf protocol, which defines a format for transmitting a list of resources ("ffplay concatf:split.txt"), has been added.
- New decoders have been added: Speex, MSN Siren, ADPCM IMA Acorn Replay, GEM (raster images).
- New encoders have been added: bitpacked, Apple Graphics (SMC), ADPCM IMA Westwood, VideoToolbox ProRes. The AAC encoder parameters have been adjusted for higher quality.
- New media container muxers have been added: Westwood AUD, Argonaut Games CVG, AV1 (Low overhead bitstream).
- New media container demuxers have been added: IMF, Argonaut Games CVG.
- A new parser for the AMR (Adaptive Multi-Rate) audio codec has been added.
- A payload data packetizer has been added for the transmission of uncompressed video using the RTP protocol (RFC 4175).
- New video filters:
- segment and asegment β splitting a single stream of video or audio into multiple streams based on time or frames.
- hsvkey and hsvhold β replace a portion of the HSV color range in video with gray scale values.
- grayworld β video color correction using an algorithm based on the gray world hypothesis.
- scharr β applying the Scharr operator (a variant of the Sobel operator with different coefficients) to the input video.
- morpho β allows various morphological transformations to be applied to video.
- latency and alatency β measures the minimum and maximum filtering delay for a previously applied filter.
- limitdiff β determines the difference between two or three video streams.
- xcorrelate β computes the mutual correlation between video streams.
- varblur β variable blur of video with the blur radius determined from a second video.
- huesaturation β applies hue, saturation, or intensity adjustments to video.
- colorspectrum β generates a video stream with a specified color spectrum.
- libplacebo β applies HDR shaders from the libplacebo library for processing.
- vflip_vulkan, hflip_vulkan, and flip_vulkan β variants of vertical or horizontal video flip 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.
- New audio filters:
- apsyclip β applies psychoacoustic filtering to the audio stream.
- afwtdn β suppresses broadband noise.
- adecorrelate β applies a decorrelation algorithm to the input stream.
- atilt β applies spectral shifting for a specified frequency range.
- asdr β determines the signal distortion between two audio streams.
- aspectralstats β outputs statistics with spectral characteristics of each audio channel.
- adynamicsmooth β dynamic smoothing of the audio stream.
- adynamicequalizer β dynamic equalization of the audio stream.
- anlmf β applies the least mean squares algorithm to the audio stream.
Source: opennet.ru
