私が見たものから、Libavのavconv
はffmpeg
の後継者になると考えられているように私には見えます - それは正しいですか?
それが本当なら、なぜそれはそうでしょうか? libavは、正確には何をしているのですか、そしてなぜffmpegよりもそれを選択したいのですか?
Ubuntu 12.04.1 LTSをVMにインストールしている間にこの「問題」に遭遇し、ffmpegをインストールしたときにmit ffmpegは廃止予定であることを伝えるメッセージを出しました。
avconv
を使用すれば、ffmpegに応じて自分のスクリプトをlibavに簡単に移行できますか。私は主にメタデータを書き、音声変換をするためにそれを使っています(wav、flac、vorbis、mp3、aac)。
まず始めに ffmpeg、libav、およびavconvの違いと関係を教えてください 。混乱の多くは次の結果です。
ffmpeg
とavconv
を区別しないユーザー。ffmpeg
を使おうとすると、あまりよく知られていないメッセージが表示されます。ffmpeg
およびlibav対avconv
ffmpeg
は、それらのコマンドラインツールの名前です。avconv
は、それらのコマンドラインツールの名前です。しばらくの間、libavはffmpeg
も持っていました。"ツール"が議論されているときにユーザーはしばしば "プロジェクト"と考える...
だから、私たちが だれに教えてくれるか... リンクから学んだように、libavがFFmpegからフォークしたとき、彼らは一時的に彼らのバージョンのffmpeg
も供給しました。 libavのメンバーとして、DebianとUbuntuのffmpegメンテナはそれからlibavを使うようにディストリビューションを切り替えることにしました。 libavの観点からすると、これは彼らの最善の動きでした。大規模なユーザーコミュニティにフォークを使わせることです。
Libavがffmpeg
のバージョンと名前を変更したツールavconv
の両方を提供したとき、Ubuntuは移行期に切り替えました。ユーザーが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
の違いを覚えていますか?もちろん、このメッセージは、プロジェクトとツールを明確に区別していない多くのユーザーを完全に混乱させました。特に、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からの多くのコミットをマージすることですが、libavはFFmpegが存在しないこと、そして時折FFmpegからチェリーピックをするように思われるのでそれは相反的ではありません。
普通のユーザーにとっては、大きな違いはないはずです。 FFmpegを使いたいUbuntuユーザーのためには、 FFmpegとx264 をコンパイルするには、 を使ってコンパイルできます。 Jon SeverinssonのFFmpeg PPA 、または FFmpegダウンロード ページからリンクされた単純な静的バイナリを入手してください。
詳細については、 FFmpeg/Libavの状況 を参照してください。
更新(2016年初め)
現在の状況(2015年半ば)
FFmpegに固執するほうが良いようです。全体的な状況はかなり厄介で醜いです。私は数日前にフォークで読み始めました。すべてのドラマを無視して、これが事実であるように思われるものです:
ここ に行くと 、最新のアップデートは2012年9月(数ヶ月前)になります。
これは this が現時点では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」に置き換えます。これは、変換ツールの実行可能ファイルを表します。 "FFmpeg"または "ffmpeg"を含むファイル名、クラス名、メソッド名、変数名などをAVConvを含むようにリファクタリングします。 EclipseのようなIDEはこれを自動的に行うことができます。テスト!問題に気づいたら、デバッグしてください。