FFmpegとは?
25年以上の歴史を持つ、世界で最も使われているオープンソースのマルチメディア処理フレームワーク
概要
FFmpegは、動画・音声・画像などのマルチメディアデータを処理するためのオープンソースソフトウェアです。 コマンドラインツールとして提供され、フォーマット変換、圧縮、トリミング、結合、ストリーミングなど、 ほぼすべてのマルチメディア処理を実行できます。
YouTube、Netflix、VLC media player、OBS Studio、Handbrake、Instagram など、 世界中の著名なサービスやアプリケーションがFFmpegをバックエンドに採用しており、 事実上のマルチメディア処理の標準ツールとして広く利用されています。
LGPLおよびGPLライセンスで公開されており、誰でも無料で利用・改変・再配布が可能です。 対応するコーデック・フォーマット数は数百にのぼり、その網羅性は他に類を見ません。
歴史と開発の経緯
FFmpegは2000年にFabrice Bellardによって開発が開始されました。 プロジェクト名の「FF」は「Fast Forward」の略で、「mpeg」はMultimedia Processing Expert Groupに由来します。 当初はLinux環境向けの動画処理ツールとして誕生しましたが、 その後macOS、Windows、FreeBSDなど多数のプラットフォームに対応しています。
2004年にMichael Niedermayerがリードメンテナーを引き継ぎ、 プロジェクトの安定化とコーデック対応の拡大を推進しました。 2011年にはプロジェクトの方向性を巡る議論からLibavがフォークされましたが、 2015年に多くの開発者がFFmpegに戻り、再びメインプロジェクトとして統合的な開発が続いています。
2024〜2025年にかけてはFFmpeg 7.x系がリリースされ、AV1エンコーダーの最適化、 Vulkanベースのハードウェアアクセラレーション対応、VVC(H.266)デコーダーの追加など、 最新の映像技術への対応が進んでいます。 2025年8月にはFFmpeg 8.0 "Huffman"、2026年3月にはFFmpeg 8.1 "Hoare" がリリースされ、 GPU処理パイプラインの成熟が大きなテーマとなっています。
設計思想とアーキテクチャ
FFmpegの設計は「Unixの哲学」に強く影響されています。 一つのツールが一つのことを極めてうまくやる、という原則に従い、 コマンドラインインターフェースを通じて柔軟なパイプライン処理を実現しています。
FFmpegプロジェクトは複数のコンポーネントで構成されています:
- ffmpeg — メインの変換・処理コマンドラインツール
- ffprobe — メディアファイルの情報を解析・表示するツール
- ffplay — シンプルなメディアプレーヤー
- libavcodec — コーデックライブラリ(エンコード・デコード)
- libavformat — コンテナフォーマットの処理
- libavfilter — 映像・音声フィルター処理
- libswscale — 映像スケーリング・色空間変換
- libswresample — 音声リサンプリング
この模倣的な構造により、FFmpegは単なるコマンドラインツールではなく、 他のソフトウェアに組み込み可能な強力なライブラリ群としても機能します。 VLCやChromium、Androidのメディアフレームワークなど、 多くのプロジェクトがlibavcodecやlibavformatを直接利用しています。
主な利用シーン
動画フォーマット変換
MP4→WebM、MOV→MP4など、あらゆるフォーマット間で変換
動画圧縮・エンコード
H.264、H.265、AV1など最新コーデックで効率的な圧縮
音声抽出・変換
動画から音声のみを抽出、MP3↔AAC↔FLAC変換
画像圧縮
JPEG→AVIF、PNG→WebPなど次世代フォーマットへの変換
トリミング・切り出し
開始/終了時刻を指定した動画・音声の部分切り出し
GIF生成
動画からアニメーションGIFを高品質で生成
ライブストリーミング
RTMP、HLS、DASHプロトコルでのライブ配信
バッチ処理
数千ファイルの一括変換をスクリプトで自動化
代表的なコマンド例
動画をH.264で圧縮
ffmpeg -i input.mov -c:v libx264 -crf 23 -c:a aac output.mp4AV1で高効率圧縮(SVT-AV1)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus output.mp4画像をAVIFに変換
ffmpeg -i photo.jpg -c:v libsvtav1 -crf 30 -pix_fmt yuv420p10le photo.avif動画から音声を抽出
ffmpeg -i video.mp4 -vn -c:a libmp3lame -q:a 2 audio.mp3JPEG→AVIF 圧縮比較(写真10,000枚)
一般的なデジタル写真(12MP、平均4MB/枚のJPEG)をAVIFに変換した場合の目安です。 品質はSSIM 0.95以上(視覚的にほぼ同等)を維持した条件での比較データです。
| 項目 | JPEG(元) | AVIF(CRF 30) | AVIF(CRF 20) |
|---|---|---|---|
| 1枚あたりサイズ | 4.0 MB | 0.6 MB | 1.2 MB |
| 10,000枚合計 | 40 GB | 6 GB | 12 GB |
| 削減率 | — | -85% | -70% |
| 視覚品質(SSIM) | 基準 | 0.95+ | 0.98+ |
| 変換速度(1枚) | — | ~2秒 | ~5秒 |
※ 実際の結果は画像の内容、解像度、エンコード設定により大きく異なります。上記は一般的な写真での目安値です。
H.264→AV1 動画圧縮比較(100本)
1080p、30fps、平均ビットレート8Mbpsの動画(各5分)をAV1に変換した場合の目安比較です。 VMaF 93以上(高品質維持)の条件でのベンチマークデータです。
| 項目 | H.264(元) | AV1(SVT-AV1, preset 6) |
|---|---|---|
| 1本あたりサイズ | 300 MB | 120 MB |
| 100本合計 | 30 GB | 12 GB |
| 削減率 | — | -60% |
| エンコード速度(1本5分の動画) | — | ~3分 |
| 視覚品質(VMAF) | 基準 | 93+ |
※ SVT-AV1は速度と品質のバランスに優れ、Homebrew ffmpegで標準利用可能な実用的な選択肢です。 実際のパフォーマンスはハードウェア、ソース映像の特性、設定により異なります。
最新のFFmpeg(2024〜2026年)
FFmpeg 7.0(2024年4月リリース)では、VVC(H.266)デコーダーの実験的サポート、 IAMF(Immersive Audio Model and Formats)対応、Vulkanベースの映像フィルター強化などが追加されました。 FFmpeg 7.1(2024年9月)ではMulti-threaded decodingの改善やAV1エンコードの最適化が行われ、 より高速なトランスコーディングが可能になっています。
FFmpeg 8.0 "Huffman"(2025年8月)では、ハードウェアアクセラレーション対応の拡大、 新しいフィルター群の追加、メモリ効率の改善などが行われました。
最新のFFmpeg 8.1 "Hoare"(2026年3月16日リリース)では、GPU処理パイプラインの成熟が大きなテーマとなっています。 Vulkanコンピュートシェーダの大幅な強化により、ProResのフルGPUエンコード・デコード、DPXのGPUデコード、 swscale Vulkanサポートが追加されました。さらにVulkanベースのコーデックが実行時GLSLコンパイルに依存しなくなり、 初期化時間が大幅に短縮されています。
Windows環境向けにはD3D12 H.264/AV1エンコーダやD3D12映像フィルタ(スケーリング・デインターレース等)が追加され、 GPUネイティブな映像処理パイプラインが充実しました。 新コーデックとしては、超低遅延・高品質圧縮のJPEG-XS完全サポート、 xHE-AACステレオ拡張(実験的)、MPEG-H 3D Audioデコード対応なども加わっています。
コードネーム "Hoare" は、2026年3月5日に逝去したコンピュータ科学者 Sir Charles Antony Richard Hoare(クイックソートの考案者)に敬意を表して名付けられました。
AV1コーデックのサポートも急速に成熟しており、 SVT-AV1はIntelとNetflixの共同開発によりリアルタイムエンコードに近い速度を実現しています。 これにより、従来はH.264/H.265が主流だった用途でもAV1への移行が加速しています。
FFmpegコマンドジェネレーターについて
FFmpegは非常に強力ですが、コマンドライン操作に慣れていないユーザーにとっては オプションの多さが障壁になることがあります。
このWebアプリ「FFmpegコマンドジェネレーター」は、GUIで直感的にオプションを選択するだけで 最適なFFmpegコマンドを自動生成します。 プリセット機能により、動画圧縮(AV1)、画像圧縮(AVIF/WebP)、音声抽出、 GIF生成など、よくあるユースケースをワンクリックで設定できます。
ドラッグ&ドロップでファイルを読み込むだけで入力ファイル名が自動反映され、 複数ファイルの一括処理スクリプトの生成にも対応しています。 生成されたコマンドをコピーしてターミナルに貼り付けるだけで、 すぐにFFmpegを実行できます。
参考リンク
FFmpegコマンドを簡単に生成
GUIで直感的にオプションを選択するだけ。コマンドライン不要でFFmpegを活用できます。