FFmpeg 5.0 (codenamed Lorentz) released

Started by JeGX, January 18, 2022, 02:00:53 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


FFmpeg 5.0 "Lorentz", a new major release, is now available! For this long-overdue release, a major effort underwent to remove the old encode/decode APIs and replace them with an N:M-based API, the entire libavresample library was removed, libswscale has a new, easier to use AVframe-based API, the Vulkan code was much improved, many new filters were added, including libplacebo integration, and finally, DoVi support was added, including tonemapping and remuxing. The default AAC encoder settings were also changed to improve quality.

- https://www.ffmpeg.org
- https://www.ffmpeg.org/download.html#release_5.0

FFmpeg has had a lot of API changes during its history, but the project is very careful about those deprecations and removals: we deprecate then we wait to allow the users time to upgrade, then we remove the APIs, because it could break the users programs.
But lately a lot of the APIs marked as deprecated were kept. Worse, internally, some of those APIs were still used, because it has been 4 years since we last removed anything.

So, in FFmpeg 5.0, a huge patchset removing all those deprecated APIs was merged last April. You can see that the patchset is more than 80 commits of removal :)

Some APIs were deprecated since 2013 and the changes can appear huge. But it's a good thing for the project, to avoid too much cruft. However it will probably require you to update your application (unless you did follow the deprecations very closely).

Some of the main API changes are:

avcodec encoding+decoding change
Single API for Audio & Video
Decoupled codec input & output
new callback allowing encoders to output data into user-managed buffers
AVFrame based API in swscale
disentangled avformat and avcodec
demuxers no longer embed an entire decoder context
new bitstream filtering API
can be used as codec header analyzer
codec/format registration APIs removed, all formats are always registered
type safety: int to size_t replacements in various APIs
libavresample removal

In the meantime, you can still use FFmpeg 4.4, that is still supported

source: http://www.jbkempf.com/blog/post/2022/FFmpeg-5.0

GeeXLab and YAFFplayer will be updated as soon as possible with FFmpeg 5.0!