FFmpeg 7.0 “Dijkstra” Released with Important AArch64 Optimizations for HEVC

This release also brings Dolby Vision profile 10 support in AV1 and support for HEIF/AVIF still images and tiled still images.
FFmpeg 7.0

Coming about five months after the release of FFmpeg 6.1, the FFmpeg 7.0 open-source multimedia framework has been released today as a major update that brings new features, new decoders, new filters, and many other changes.

Highlights of FFmpeg 7.0 include Dolby Vision profile 10 support in AV1, support for HEIF/AVIF still images and tiled still images, support for PacketTypeMetadata of PacketType in enhanced FLV format, D3D12VA hardware accelerated H264, HEVC, VP9, AV1, MPEG-2 and VC1 decoding, and important AArch64 optimizations for HEVC.

Also new is support for Ambient Viewing Environment metadata in MP4/ISOBMFF, EVC decoding using the libxevd external library, EVC encoding using the libxeve external library, as well as support for parallel demuxing, decoding, filtering, encoding, and muxing in the ffmpeg command-line interface (CLI).

Furthermore, FFmpeg 7.0 adds support for the AFGS1 (AOMedia Film Grain Synthesis 1) format, introduces LoongArch optimizations for HEVC decoding, as well as RISC-V optimizations for AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1, VP8, and other formats, and adds IAMF support inside MP4/ISOBMFF.

This release also enables gdigrab device to grab a window using the hwnd=HANDLER syntax, introduces the randomi() function in expressions, updates the ffmpeg -bsf option to be used for input as well as output, adds Android content URIs protocol support, and adds ffplay hardware accelerated decoding support, which depends on a Vulkan renderer via the libplacebo library.

HDR10 metadata passthrough support has been added as well in FFmpeg 7.0 when encoding with libx264, libx265, and libsvtav1, along with a DXV DXT1 encoder, a LEAD MCMP decoder, a QOA decoder, an experimental VVC decoder, a qrencodesrc source, and ffmpeg CLI loopback decoders.

Among other noteworthy changes, this release changes the default bitrate control method from VBR to CQP for QSV encoders, adds a -show_stream_groups option to the ffprobe command, updates the ffprobe -export_side_data film_grain command to also print film grain metadata, updates all ffmpeg CLI options to be used as -/opt , which is equivalent to -opt >, and removes the deprecated -psnr and -map_channel ffmpeg CLI options.

As expected, new filters are present in this release, including a showinfo bitstream filter, fsync filter, tiltandshift filter, quirc filter, aap filter, dnn filter (using libtorch backend), and qrencode filter.

New muxers and demuxers are also included in FFmpeg 7.0, such as a DVD-Video demuxer (powered by libdvdnav and libdvdread), a QOA demuxer, an IAMF raw demuxer and muxer, an RCWT (Raw Captions with Time) closed caption muxer, and an AEA muxer.

Under the hood, FFmpeg now requires a C11-compliant compiler. The devs note the fact that this requirement will be bumped to C17 in future release, so they urge system integrators to consider updating their build environments if they lack C17 support.

FFmpeg 6.1 is available for download right now from the official website and includes several updated components like libavutil 59.8.100, libavcodec 61.3.100, libavformat 61.1.100, libavdevice 61.1.100, libavfilter 10.1.100, libswscale 8.1.100, libswresample 5.1.100, and libpostproc 58.1.100.

Image credits: FFmpeg

Last updated 2 months ago

Buy Me a Coffee at ko-fi.com