Multi-threading of FFmpeg command line tool completed, developer says 'most complex fix in decades'

The development team of the open source multimedia framework 'FFmpeg' has reported the completion of multithreading of the command line tool. The development team describes the process as 'the most complex refactoring in decades.'

FFmpeg is a multimedia framework that can process a large number of types of video and audio files, and allows various operations such as playback, trimming, conversion, and compression of video and audio files. FFmpeg can be used directly from the command line, and is also widely used as a built-in software in many video playback software, video editing software, streaming services, etc.

FFmpeg consists of many components such as encoders, decoders, multiplexers, demultiplexers, and filters. The development team has been working on multi-threading these components since around 2021. Multithreading the long-established FFmpeg component seems to have been a difficult task, with the development team describing the work as 'the most complex refactoring in decades.'

Finally, on December 12, 2023, the completion of multithreading was reported. The development team claims that multithreading brings benefits such as ``improving CPU usage efficiency,'' ``reducing delays,'' and ``making it easier to add new features.'' However, this multithreading is aimed at parallel execution of each component, and does not significantly affect the performance of the decoder or encoder itself. For this reason, it seems that ``video encoding will become significantly faster'' will not occur.

The development team is asking for help testing FFmpeg with multithreaded code.

Please note that FFmpeg uses an annual release cycle, and the next major version, FFmpeg 7.0, is scheduled to be released in February 2024. For this reason, it is likely that general users will not be able to benefit from multithreading until February 2024.

◆Forum now open
A forum related to this article has been set up on the GIGAZINE official Discord server . Anyone can write freely, so please feel free to comment! If you do not have a Discord account, please create one by referring to the article explaining how to create an account!

• Discord | 'What do you think would be useful with CLI multithreading in FFmpeg? ' | GIGAZINE

in Software, Posted by log1o_hf