web-dev-qa-db-ja.com

ffmpeg、libav、およびavconvの違いと類似点は何ですか?

Ubuntuでffmpegを実行すると、次のように表示されます。

$ ffmpeg 
ffmpeg version v0.8, Copyright (c) 2000-2011 the Libav developers
  built on Feb 28 2012 13:27:36 with gcc 4.6.1
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).

あるいはそれは(Ubuntuのバージョンによっては)表示されます。

$ ffmpeg
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
  built on Jan 24 2013 14:49:20 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

私は http://libav.org にavconvを見つけました。私は彼らに当惑しています。

230
why

わかりにくいメッセージ

これらのメッセージはかなり誤解を招くものであり、当然のことながら混乱の元になります。古いバージョンのUbuntuは、FFmpegプロジェクトのフォークであるLibavを使用しました。 FFmpegはUbuntu 15.04 "Vivid Vervet"に戻ってきました。

フォークは基本的にFFmpegコミュニティ内で競合する人格と開発スタイルのおかげで友好的な結果でした。 Debian/UbuntuのメンテナがLibavフォークに参加していたために彼自身の合意によりFFmpegからLibavに切り替えたことは注目に値します。

本当のffmpegと偽のもの

しばらくの間、LibavとFFmpegは、それぞれ独自のバージョンのffmpegを別々に開発しました。

それからLibavはFFmpegプロジェクトから遠ざけるために彼らのbizarro ffmpegavconvに改名しました。移行期間中に、「もう開発されていません」というメッセージが表示され、偽造バージョンのavconvではなくffmpegの使用を開始するようにユーザーに伝えました。これはユーザーを混乱させ、FFmpeg(プロジェクト)は死んでいると考えるようになりました。悪い言葉の選択だが、Libavが一般ユーザーからのそのような反応を期待していないことは想像できない。

このメッセージは、偽の "ffmpeg"が最終的にLibavソースから削除されたときにアップストリームで削除されました。

2012年6月に、 パッケージlibav - 4:0.8.3-0ubuntu0.12.04.1のメッセージが書き直されました 。残念なことに、新しい「廃止予定」のメッセージは、さらなるユーザーの混乱を引き起こしました。

Ubuntu 15.04 "Vivid Vervet"以降、FFmpegのffmpegは再び リポジトリに戻りました

libav vs Libav

さらに複雑なことに、Libavは歴史的にFFmpegがそのライブラリを参照するために使用していた名前(libavcodec、libavformatなど)を選びました。例えば、 libav-userメーリングリスト は、FFmpegライブラリの使用についての質問や議論のために、Libavプロジェクトとは無関係です。

違いを見分ける方法

avconvを使用している場合は、Libavを使用しています。 ffmpegを使用している場合は、FFmpegまたはLibavを使用できます。違いを見分けるためにコンソール出力の最初の行を参照してください:著作権表示はFFmpegかLibavを言及するでしょう。

次に、バージョン番号の付け方が異なります。 FFmpegまたはLibavの各ライブラリーには、バージョン番号を示すversion.hヘッダーが含まれています。 FFmpegは57.67 .1のように3桁で終わり、Libavは57.67 .のように1桁で終わります。 ffmpegまたはavconvを実行してコンソール出力を表示して、ライブラリのバージョン番号を表示することもできます。

実際のffmpegを使いたい場合

Ubuntu 15.04 "Vivid Vervet"以降

本当のffmpegはリポジトリに入っているので、次のようにインストールすることができます。

apt-get install ffmpeg

それ以前のバージョンのUbuntuの場合

あなたのオプションは:

これらのメソッドは邪魔にならず、元に戻すことができ、システムやリポジトリパッケージを妨害することはありません。

もう1つの可能な選択肢は、Ubuntu 15.04 "Vivid Vervet"以降にアップグレードして、リポジトリからffmpegを使用することです。

また見なさい

状況に関する興味深いブログ記事、およびプロジェクト間の主な技術的相違についての議論は、 FFmpeg/Libavの状況 を参照してください。

435
llogan