まず、いくつかの用語を明確にします。
- FFmpeg は、多くの人、Wiki、バグトラッカー、資金提供などを含むソフトウェア プロジェクトです。
ffmpeg
は、彼らが提供するツールの 1 つです (他にはffplay
やなどがありqt-faststart
ます)。
- Libav
avconv
は、バイナリを提供する FFmpeg プロジェクトのフォークでした。一部のディストリビューションでは、しばらくの間、FFmpeg プログラムの代わりに Libav を出荷することを決定しました。特に Ubuntu は、Libav コマンドがまだ名前が付けられていた移行期間に少し混乱を引き起こしましたffmpeg
。現在の Ubuntu は再び「本物」を使用していffmpeg
ます。
ffmpeg
あなたが言ったように、このツールは、マルチメディア コンテンツを処理するために設計された多くのライブラリのコマンド ライン ラッパーです。これらには以下が含まれます:
FFmpeg の開発者は独自のエンコーダーとデコーダーを提供することがよくありますが、 libavcodec にラッパーを含むサードパーティのライブラリを有効にして、FFmpeg と、たとえば最も人気のある H.264 エンコーダーであるx264を「接着」することができます。これは、x264 よりも優れたものにすることを目標に新しい H.264 エンコーダーを作成することにした場合など、単に「車輪の再発明」に意味がない場合によく行われます。ffmpeg
また、libfaac などのライセンス上の理由により、一部のライブラリがビルドに同梱されていない場合があります。その場合、ffmpeg
ネイティブ AAC エンコーダーが提供されます。
一般的な外部エンコーダには次のものがあります。
- libx264
- libvpx (VP8 および VP9 ビデオ用)
- AACオーディオ用のlibfaac、libfdk-aac、libvo-aacenc
- libmp3lame
- libvorbis
- libxvid
これらすべてについて、libavcodec の下にラッパーがあります。たとえば、libx264 の場合、ファイルlibx264.c
はビデオを FFmpeg 内部形式から x264 エンコーダーにプッシュするために必要なコードを提供し、それを libavformat に渡してファイルに書き込みます。 . 実際のエンコーディングは libx264 を介して行われます。
前述のように、MPEG-4 用のエンコーダなど、他のエンコーダは FFmpeg にネイティブであり、外部ライブラリにまったく依存していません。
最後に、実行可能ファイルを提供したり、libavcodec および libavformat ライブラリの一部を選択したりして、FFmpeg ツールとライブラリを利用するプログラムがいくつかあります。ffmpeg
これはライセンスごとに許可されており、FFmpeg は現在最も人気のあるマルチメディア ツールのコレクションとなっています。