FFmpeg is a comprehensive multimedia processing tool widely used for handling video, audio, and other multimedia files and streams. It is an open-source software project comprising a suite of libraries and programs for performing various tasks, including format transcoding, basic editing, video scaling, video post-production effects, and standards compliance.
For example, it can convert multimedia files from one format to another, trim and concatenate multimedia files, scale multimedia files to a different resolution, apply video post-production effects to multimedia files, and ensure they comply with standards such as SMPTE and ITU.
FFmpeg comprises several components: the
libavformat library for reading and writing multimedia files, the
libavcodec library for encoding and decoding multimedia data and the
libavutil library of utility functions for multimedia processing.
The ffmpeg command-line tool is used for manipulating multimedia files,
ffplay is a media player for playing multimedia files and
ffprobe is a tool for displaying information about multimedia files.
One of the most significant advantages of FFmpeg is its wide range of multimedia format support. It can handle various video formats such as MPEG-1, MPEG-2, MPEG-4, H.264, H.265, AVI, QuickTime, WMV, FLV, WebM, Ogg, etc.
It also supports audio formats such as MP3, AAC, FLAC, Ogg Vorbis, WAV, AIFF, and many others, and image formats such as JPEG, PNG, GIF, BMP, TIFF, etc.
FFmpeg 6.1 “Heaviside” Released
FFmpeg 6.1 “Heaviside” is a major release with several exciting features and improvements. One of the notable additions is the
libaribcaption decoder, which allows for decoding ARIB STD-B24 captions used in Japanese broadcasting. Another new addition is the Playdate video decoder and demuxer, which supports the unique video format used by the upcoming Playdate handheld gaming system.
The release also extends VAAPI (Video Acceleration API) support for
libva-win32 on Windows, which improves video playback performance on Windows systems. The
afireqsrc audio source filter and
arls filter are useful for audio processing tasks.
The ffmpeg CLI now includes a new option, `-readrate_initial_burst`, allowing for more fine-tuned control over the initial buffer size when reading from network streams. The
zoneplate video source filter generates a test pattern for evaluating video processing algorithms.
Command support has also been added to the setpts and asetpts filters, making it possible to specify frame duration in more flexible ways.
Regarding hardware acceleration, FFmpeg 6.1 introduces Vulkan decode hwaccel, which supports decoding H.264, HEVC, and AV1 video on Vulkan-capable GPUs. The color_vulkan, bwdif_vulkan, and nlmeans_vulkan filters use the Vulkan API for GPU-accelerated video processing.
The xfade_vulkan filter adds a crossfade effect to video transitions. The release also supports the RivaTuner and vMix video decoders and the Essential Video Coding (EVC) codec, with a parser, muxer, demuxer, and frame merge bitstream filter.
In terms of performance improvements, FFmpeg 6.1 includes several changes to reduce overhead and improve accuracy. The FFT, MDCT, DCT, and DST implementation used for codecs and filters have been replaced with the faster libavutil/tx, which also reduces the size of the compiled binary.
The total amount of allocations on each frame throughout video decoders has been reduced, which can significantly reduce overhead. Additionally, there have been RISC-V optimizations for many parts of the DSP code, with mainly the large decoders being left. Improvements have been made to the correctness of timestamps and frame durations of each packet, increasing the accuracy of variable frame rate video.
Overall, FFmpeg 6.1 “Heaviside” is a significant release that brings several new features, performance improvements, and bug fixes. The next major release, version 7.0, is scheduled for February, and we can expect more exciting features and improvements.
Check the full changelog in the news section.