FFmpegコマンドラインツールのマルチスレッド化が完了、開発者いわく「数十年で最も複雑な修正」
オープンソースのマルチメディアフレームワーク「FFmpeg」の開発チームがコマンドラインツールのマルチスレッド化完了を報告しました。開発チームは一連の作業を「ここ数十年で最も複雑なリファクタリング」と表現しています。
FFmpeg CLI multithreading is now merged! https://t.co/uUJ0SF0opw
— FFmpeg (@FFmpeg) December 12, 2023
FFmpegは非常に多くの種類の動画ファイルや音声ファイルを処理可能なマルチメディアフレームワークで、動画および音声ファイルの再生やトリミング、変換、圧縮など多様な操作が可能です。FFmpegは直接コマンドラインから使えるほか、数多くの動画再生ソフトや動画編集ソフト、ストリーミングサービスなどに組み込まれて広く利用されています。
FFmpegはエンコーダーやデコーダー、マルチプレキサ、デマルチプレキサ、フィルターなど数多くのコンポーネントから成り立っています。開発チームはこれらのコンポーネントのマルチスレッド化に2021年頃から取り組んできました。長い歴史を持つFFmpegコンポーネントのマルチスレッド化は困難な作業だったようで、開発チームは作業を「数十年で最も複雑なリファクタリング」と表現しています。
Technical presentation about FFmpeg CLI* multithreading work:https://t.co/khdS556djf
— FFmpeg (@FFmpeg) December 3, 2023
This work is one of the most complex refactoring of the FFmpeg CLI in decades.
*(not to be confused with codec multithreading)
そして、2023年12月12日についにマルチスレッド化の完了が報告されました。開発チームはマルチスレッド化により「CPU使用効率の向上」「遅延の減少」「新機能の追加が容易になる」といったメリットが得られるとアピールしています。ただし、今回のマルチスレッド化は各コンポーネントの並列実行を目指したものであり、デコーダーやエンコーダーそのものの性能には大きく影響していません。このため、「動画のエンコードが大幅に高速化」といったことは起こらないそうです。
開発チームはマルチスレッド化コードが組み込まれたFFmpegのテストへの協力を呼びかけています。
Please test and report issues to https://t.co/oeoPnlZYDn - this is one of the most complex changes in FFmpeg ever!
— FFmpeg (@FFmpeg) December 12, 2023
なお、FFmpegは年次リリースサイクルを採用しており、次期メジャーバージョンのFFmpeg 7.0は2024年2月にリリースされる予定です。このため、一般ユーザーがマルチスレッド化の恩恵を受けられるのは2024年2月以降になりそうです。
◆フォーラム開設中
本記事に関連するフォーラムをGIGAZINE公式Discordサーバーに設置しました。誰でも自由に書き込めるので、どしどしコメントしてください!Discordアカウントを持っていない場合は、アカウント作成手順解説記事を参考にアカウントを作成してみてください!
• Discord | "「FFmpeg」のCLIマルチスレッド化でどんなことが便利になると思う?" | GIGAZINE(ギガジン)
https://discord.com/channels/1037961069903216680/1185148695247851572
・関連記事
無料でFFmpegのフィルター機能をブラウザ上でチェックできてさらにコマンドも出力してくれる「FFmpeg Explorer」 - GIGAZINE
無料のムービー変換ソフト「FFmpeg 6.0」リリース、NVENCやQSVでのAV1エンコードに対応 - GIGAZINE
「FFmpeg 5.0」がついに公開、リリースサイクルの変更もアナウンスされる - GIGAZINE
ブラウザ上で動画生成や変換ができるWebAssembly版FFmpeg「ffmpeg.wasm」レビュー - GIGAZINE
・関連コンテンツ