FFmpegではなくLibavを選択するのはなぜですか、それとも違いがありますか?


72

私が見たところから、Libavのavconv後継者になると考えられているように見えffmpegます。それは正しいですか?

それが本当なら、なぜそうですか?libavは正確に何をしているのか、なぜffmpegよりも選択したいのか?

Ubuntu 12.04.1 LTSをVMにインストールしているときにこの「問題」に遭遇し、ffmpegをインストールすると、mit ffmpegが非推奨であり、「wtf?」と最初に思ったというメッセージが出ました。

使用する場合avconv、ffmpegに応じて、libavに多少なりとも簡単にスクリプトを移行できますか?私は主にメタデータの書き込みとオーディオ変換(wav、flac、vorbis、mp3、aac)に使用しています。


1
ffmpegは確かに時代遅れではなく、何をするのかという点で最も優れています。
ジェームズキャンベル

回答:


94

まず、誰がffmpeg、libav、およびavconvの違いと関係を教えてくれるかを見てください。混乱の多くは、次の結果です。

  1. プロジェクト、FFmpegとlibav、およびそれぞれのコマンドラインツールを区別しないユーザー、ffmpegおよびavconv
  2. ユーザーがlibavを使用しようとすると、言葉遣いの乏しいメッセージが表示されますffmpeg

FFmpeg vs ffmpegおよびlibav vsavconv

  • FFmpegはプロジェクト名です。ffmpegコマンドラインツールの名前です。
  • libavはプロジェクト名です。avconvコマンドラインツールの名前です。短期間libavにもffmpeg

「ツール」が議論されているとき、ユーザーはしばしば「プロジェクト」を考えます。

不十分な言葉遣いのメッセージ

だから、Who can tell me ...リンクから学んだように、libmpがFFmpegから分岐したとき、彼らは一時的にのバージョンも提供しましたffmpeg。libavのメンバーとして、DebianとUbuntuのffmpegメンテナーは、libavを使用するようにディストリビューションを切り替えることにしました。libavの観点から、これは彼らの最良の動きでした。大規模なユーザーコミュニティにフォークを使用させることです。

Ubuntuは、libavがバージョンffmpegと名前を変更したツールの両方を提供した移行期間中に切り替わりましたavconv。ユーザーがlibavを使用しようとするとffmpeg、次のメッセージが表示されました。

This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

この場合、メッセージに記載されている「ffmpeg」はlibavの一時バージョンであり、後で削除されました(メッセージと同様)。FFmpegとffmpeg?の違いを覚えていますか?もちろん、このメッセージは、プロジェクトとツールを明確に区別しなかった多くのユーザーを完全に混乱させました。特に、ディストリビューションがswitcharooを行ったことを知らなかったUbuntuユーザー、またはlibavを聞いたことがないユーザー。libavがユーザーにこれを考えさせたかどうかはわかりませんが、おそらくこの副作用を楽しんだでしょう。

一部のUbuntuユーザーは、このメッセージは誤解を招くものであると考えていたため、後で次のように変更されました。

***THIS PROGRAM IS DEPRECATED***
This program is not developed anymore and is only provided for compatibility.  
Use avconv instead (see Changelog for the list of incompatible changes).

私の意見は少し改善されましたが、十分に明確ではないように感じます。

どちらを使用しますか?

どちらを使用するかは誰にもわかりません。ユーザーの主な違いは、FFmpegがlibavからの多くのコミットをマージすることですが、FFavはFFmpegが存在せず、たまにFFmpegからチェリーピックをするようにlibavがふりをしているように見えるため、それほど相互的ではありません。

一般ユーザーにとっては、大きな違いはないはずです。FFmpegを使用したいUbuntuユーザーは、How To Compile FFmpeg and x264に従ってコンパイルするJon SeverinssonのFFmpeg PPAを使用するか、FFmpegダウンロードページからリンクされた単純な静的バイナリを取得できます。

詳細については、FFmpeg / Libavの状況を参照してください。


27
ひどい言葉遣いのメッセージを超えて、それは完全に間違っています。FFmpegは開発をまったく停止していません。実際、FFmpegにはLibAVよりもはるかに大きなコミュニティがあります。それは100%純粋な悪意です。
-MarcusJ

1
avconvはLADSPAもサポートしていません
ヴァシリス

5
@MarcusJ ...技術的にはdebianメンテナーでした。しかし、はい、同意します。それは欺くものです。
Wyatt8740

「不適切な言葉遣いのメッセージ」のフレーズではなく、それに対するダウン投票。それは意図的な不正行為でした。
アンワル

1
@Anwarうん、そうだった。だから「言葉遣いが悪い」と言ったのですが、言葉遣いが不十分だったと思います。
llogan

32

更新(2016年前半)

  • オッズはffmpegに有利です。ほとんどのディストリビューションは、ffmpeg(GentooDebian)に切り替えた/切り替えています
  • ffmpegの実用的な利点の1つは、多くのプラットフォームでバイナリを幅広く利用できることです。静的ライブラリ/動的ライブラリ/バイナリのグーグル検索では、ffmpegのlinux、mac、windows、ios、androidで良好な結果が得られますが、libavのlinuxおよびwindowsビルドしか見つかりませんでした。C / makefileの経験が少ない場合、これは重要なポイントになる可能性があります。

現在の状況(2015年半ば)

FFmpegに固執する方が良いようです。全体の状況はかなり厄介でいです。数日前にフォークを読み始めました。すべてのドラマを無視して、事実と思われるものを以下に示します。

  • FFmpegにはlibavからの変更セットが組み込まれていますが、libavはそうすることに消極的です(debian debateを参照)
  • Chromeはffmpegを使用しており、グーグルはそれを安全にするために真剣に努力しています。libavもこれらの変更を取り入れていますが、ペースは遅くなっています(googleブログ投稿
  • Libavは、いくつかの(落としながらのFFmpegは、できるだけ多くのコーデックを維持しようとするのLibavメーリングリストのLibavのDEVからポスト
  • FFmpegコミュニティはlibavよりも大きく、最も献身的な開発者(michael niedermayer)はFFmpegに固執しています(commit stats
  • FFmpegのubuntu / debianメンテナーは、libavフォークの一部でした。いくつかのコマンドラインツールに廃止メッセージを追加し、ffmpegが廃止されることを示唆しました。これは多くの混乱を引き起こしました。debianubuntuの両方がffmpegに戻っています。

私はGoogle Michael Niedermayerに偶然出会ったが、この投稿で彼は辞任した。
bzeaman

1
@bzeamanはい、私はこれに出くわしたことを覚えています。:彼はまだ日のコミット/ 2マージでの平均のようですgit.videolan.org/...
kritzikratzi

うーん、debにはインストール候補はありません。今、何が置き換えられましたか?
Stígandr

NVMの心はそれのLibav-ツールだ
Stígandr

1
Niedermayerがフォークの理由でした。とはいえ、彼は大きく変わった。
イスマエルルセノ

9

ここにアクセスすると、最新の更新プログラムが2012年9月(数か月前)であることがわかります。

ように見え、これが、それはこの時点でのUbuntuとDebianにだけ特有のだと言います。

しばらく前に、ffmpegはffmpegとlibavという名前で2つのフォークに分割されました。

Debianはディストリビューションでlibavフォークをフォローしています。今後のアップロードでは、バイナリ/ usr / bin / ffmpegは/ usr / bin / avconvに置き換えられます。

私の知る限り、すぐに切り替える必要はありませんが、Winffをアップグレードして、いずれかのバイナリを許可する必要があります(Debianの観点から、avconvを優先)。環境設定でバイナリの場所を設定できることは知っていますが、場所を設定すれば、Winffは適切なバイナリを見つけることができるはずです。

将来的には、Windowsや他のディストリビューションもこの問題の影響を受ける可能性があると思います。

まったく同じかどうかについての質問に答えるには:

ローカルチェックアウトで正しいバイナリのチェックを実装しましたが、1を読んで、avconvとffmpegの間に矛盾があることがわかります。プリセットファイルには調整が必要であり、特にコマンドラインの作成方法を変更する必要があるため、この問題はより大きくなります。入力ファイルを操作するオプションは、入力ファイル「-i」の前に移動する必要があります。

これは、Windowsバージョンに固有の場合があることに注意してください。これは、Linuxバージョンに関して投稿されました。

FFmpegオーディオ/ビデオ変換ツールは現在AVConv(私の意見ではより良い名前)として知られています。そのため、「ffmpeg」コマンドラインツールは廃止され、「avconv」を使用する必要があります。私が気付いた限りでは、すべてのパラメーターは同じままでしたが、さらに調査する必要があります。CISでいくつかの変更を行う必要があります。

タスク:

CISを実行するマシンにAVConvをインストールします。通常、avconvはffmpegを更新しているように見えます(Ubuntuで動作しました; Debianでテストされていません)。cis / api / ffmpeg.py、クラスFFmpegTranscoder、フィールドprog_binの「ffmpeg」を「avconv」に置き換えます。これは、変換ツールの実行可能ファイルを表します。AVConvを含むように「FFmpeg」または「ffmpeg」を含むファイル名、クラス名、メソッド名、変数名などをリファクタリングします。EclipseのようなIDEはこれを自動的に行うことができます。テスト!問題に気づいたら、デバッグしてください!


9
「ffmpegは廃止されており、avconvを使用する必要がある」という投稿には強く反対します。
slhck 14

@slhckこれは、プロジェクトをフォークするときの標準的な慣行のようです。メインブランチが廃止されたと考えるようにだますことができるユーザーが多ければ多いほど、フォークに適しています。
user253751
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.