11

wikiから、私はそれを読みました

FFmpeg は、マルチメディア データを処理するためのライブラリとプログラムを作成するフリー ソフトウェア プロジェクトです。FFmpeg の最も注目すべき部分は、libavcodec、他のいくつかのプロジェクトで使用されるオーディオ/ビデオ コーデック ライブラリ、libavformat、オーディオ/ビデオ コンテナーのマルチプレクサおよびデマルチプレクサ ライブラリ、およびマルチメディア ファイルをトランスコードするための ffmpeg コマンド ライン プログラムです。

では、ffmpeg は avcodec のラッパーですか? また、ffmpeg を使用して x264 でビデオをエンコードしている人もよく耳にします。では、ffmpeg も x264 のラッパーですか?

それらはどのように関連していますか?

4

1 に答える 1

30

まず、いくつかの用語を明確にします。

  • FFmpeg は、多くの人、Wiki、バグトラッカー、資金提供などを含むソフトウェア プロジェクトです。
  • ffmpegは、彼らが提供するツールの 1 つです (他にはffplayやなどがありqt-faststartます)。
  • Libavavconvは、バイナリを提供する 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 は現在最も人気のあるマルチメディア ツールのコレクションとなっています。

于 2013-05-27T20:03:02.057 に答える