https://www.phoronix.com/news/FFmpeg-CLI-MT-Merged Phoronix * Articles & Reviews * News Archive * Forums * Premium * Categories * Computers * Display Drivers * Graphics Cards * Linux Gaming * Memory * Motherboards * Processors * Software * Storage * Operating Systems * Peripherals * Close * * Articles & Reviews * News Archive * Forums * Premium * Contact * Categories Computers Display Drivers Graphics Cards Linux Gaming Memory Motherboards Processors Software Storage Operating Systems Peripherals * [ ] [Search] FFmpeg Lands CLI Multi-Threading As Its "Most Complex Refactoring" In Decades Written by Michael Larabel in Multimedia on 12 December 2023 at 09:07 AM EST. 9 Comments MULTIMEDIA The long-in-development work for a fully-functional multi-threaded FFmpeg command line has been merged! The FFmpeg CLI with multi-threaded transcoding pipelines is now merged to FFmpeg Git ahead of FFmpeg 7.0 releasing early next year. FFmpeg is widely-used throughout many industries for video transcoding and in today's many-core world this is a terrific improvement for this key open-source project. In recently sharing a technical presentation on the FFmpeg multi-threading effort, FFmpeg developers called this work "one of the most complex refactoring of the FFmpeg CLI in decades." And in calling for testing today added, "Please test and report issues to [FFmpeg Trac] - this is one of the most complex changes in FFmpeg ever!" The code is now in FFmpeg Git. The patches include adding the thread-aware transcode scheduling infrastructure, moving encoding to a separate thread, and various other low-level changes. In culminating with converting FFmpeg to a threaded architecture is summed up as: fftools/ffmpeg: convert to a threaded architecture Change the main loop and every component (demuxers, decoders, filters, encoders, muxers) to use the previously added transcode scheduler. Every instance of every such component was already running in a separate thread, but now they can actually run in parallel. FFmpeg threading There's a recent presentation on this work by developer Anton Khirnov. It's terrific seeing this merged and will be interesting to see the performance impact in practice. 9 Comments Tweet [INS::INS] Related News Flowblade 2.12 Video Editor Brings Faster Proxy Rendering, Continued GTK4 Porting FFmpeg's ffplay Media Player Adds Vulkan Renderer Open-Source H.264 Video Encode Coming For Allwinner V3/V3s/S3 SoCs OBS Studio 30.0 Released With Intel QSV AV1 On Linux, WHIP/WebRTC Output FFmpeg 6.1 Released With Vulkan Video Decoding, VA-API AV1 Encode FFmpeg Patches Allow For "Fully Functional" Multi-Threaded CLI About The Author Michael Larabel Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com. Popular News This Week systemd 255 Released With A "Blue Screen of Death" For Linux Systems FFmpeg Lands CLI Multi-Threading As Its "Most Complex Refactoring" In Decades GNOME's Dynamic Triple Buffering "Ready To Merge" Linux 6.8 Dropping Support For Very Old Graphics Drivers Linux 6.6.6 Released Due To WiFi Regression Debian 12.3 Delayed Due To An EXT4 Data Corruption Bug Being Addressed LVFS Has Supplied More Than 100 Million Firmware Updates To Linux Users Intel Striving To Overhaul Their Multiple Ethernet Linux Drivers: "The Great Code Dedup" Latest Linux News Ubuntu Linux Evaluating x86-64-v3 Based Build - AVX & Newer Intel/AMD CPUs Red Hat Looks For Feedback On Its New Initoverlayfs File-System Proposal LXD 5.20 Released With Canonical Changing It To AGPLv3 Licensing Linux 6.8 Will Make It More Clear When x86 32-bit Support Is Disabled FFmpeg Lands CLI Multi-Threading As Its "Most Complex Refactoring" In Decades Intel Visual Sensing Controller Enablement Work Continues For Linux 6.8 Cling 1.0 Released For Interactive C++ Interpreter More Bcachefs Fixes Land In Linux 6.7 One Line Patch Doubles Mesa NVK Performance For Talos Principle... To 18 FPS WayVNC 0.8 Preparing Transient Seats, Automatic Server-Side Resizing & Detached Mode Show Your Support, Go Premium Phoronix Premium allows ad-free access to the site, multi-page articles on a single page, and other features while supporting this site's continued operations. Latest Featured Articles HP Z6 G5 A Makes For An Incredibly Powerful AMD Workstation For Creators & Developers Ampere Altra Max Continues To Deliver Competitive Power Efficiency To AMD EPYC & Intel Xeon AMD Announces The Ryzen 8040 Series Mobile Processors With Better Ryzen AI AMD Details The MI300X & MI300A, Announces ROCm 6.0 Software The Performance & Power Improvement Of Steam Deck OLED's 6nm APU Support Phoronix The mission at Phoronix since 2004 has centered around enriching the Linux hardware experience. In addition to supporting our site through advertisements, you can help by subscribing to Phoronix Premium. You can also contribute to Phoronix through a PayPal tip or tip via Stripe. Phoronix Media --------------------------------------------------------------------- * Contact * Michael Larabel * OpenBenchmarking.org Phoronix Premium --------------------------------------------------------------------- * Support Phoronix * While Having Ad-Free Browsing, * Single-Page Article Viewing Share --------------------------------------------------------------------- * Facebook * Twitter * Legal Disclaimer, Privacy Policy, Cookies | Contact * Copyright (c) 2004 - 2023 by Phoronix Media. * All trademarks used are properties of their respective owners. All rights reserved.