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


246

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

$ 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を見つけました。私は彼らに戸惑っています。


1
これは、間違ったコマンドライン引数を指定していることを意味します。
Dipan Mehta

18
This program is not developed anymore and is only provided for compatibility. Use avconv instead
なぜ

1
あなたは何をしようとしているのですか?ffmpeg主にライブラリであり、メインのffmpegコマンドラインはその機能のデモンストレーションのためのものです(ただし、役立つ場合は使用する必要はありません)。コマンドとしてのみ使用したい場合は、ffmpegを使用して目的の操作を行う多くのアプリケーションがあります。
Dipan Mehta


4
すべての違いを説明することはできませんが、avconv -ss 00:01:42 -t 00:00:32 -i sourcefilename -acodec copy targetfilenameが機能せず、ffmpeg -ss 00:01:42 -t 00:00 :32 -i sourcefilename -acodec copy targetfilenameは、ドキュメントが一致していても期待どおりに機能します

回答:


472

紛らわしいメッセージ

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

フォークは基本的に、FFmpegコミュニティー内での人格と開発スタイルの矛盾の結果として、非友好的な結果でした。Debian / UbuntuのメンテナがLibavフォークに関与しているため、自分の都合でFFmpegからLibavに切り替えたことは注目に値します。

本物ffmpegvs偽物

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

その後、リバブffmpegは彼らのビザーロの名前をavconvFFmpegプロジェクトから遠ざけるように変更しました。移行期間中、「もう開発されていません」というメッセージが表示されavconv、偽造バージョンのの代わりに使用を開始するようユーザーに通知しましたffmpeg。これはユーザーを混乱させ、FFmpeg(プロジェクト)は死んでいると考えましたが、これは正しくありません。言葉の選択は悪いですが、Libavが一般ユーザーによるそのような応答を期待していないとは思えません。

このメッセージは、偽の " ffmpeg"が最終的にLibavソースから削除されたときに上流で削除されましたが、Ubuntuが使用するLibavソースはffmpegからavconvへの移行期間であるため、バージョンによっては、Ubuntuに引き続き表示される場合があります。

2012年6月、メッセージはパッケージ用に書き直されましたlibav - 4:0.8.3-0ubuntu0.12.04.1。残念ながら、新しい「非推奨」メッセージにより、さらにユーザーが混乱しました。

Ubuntu 15.04「Vivid Vervet」以降、FFmpeg ffmpegは再びリポジトリに戻ってきました

libav対Libav

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

違いを見分ける方法

使用しているavconv場合は、Libavを使用しています。使用しているffmpeg場合は、FFmpegまたはLibavを使用している可能性があります。違いを確認するには、コンソール出力の最初の行を参照してください。著作権表示には、FFmpegまたはLibavのいずれかが記載されています。

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

本物を使いたいなら ffmpeg

Ubuntu 15.04 "Vivid Vervet"以降

実際ffmpegはリポジトリにあるので、次のようにインストールできます:

apt-get install ffmpeg

古いUbuntuバージョンの場合

オプションは次のとおりです。

これらの方法は、非侵入的で可逆的であり、システムやリポジトリパッケージに干渉しません。

別の可能なオプションは、Ubuntu 15.04 "Vivid Vervet"以降にアップグレードしffmpegて、リポジトリから使用することです。

また見なさい

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


89
個人的な問題のようです
mirza

1
実際のffmpegをインストールした後でも、それを機能させることができない場合。libav-toolsとしてubuntuに同梱されているデフォルトのffmpegを削除する必要があります。askubuntu.com / questions / 162740 / how - do - i - uninstall -ffmpegを参照してください。
user568109 2013

@ user568109 ffmpegのインストール方法によって異なります。Ubuntu、Debian、またはMintでFFmpegをコンパイルする方法を参照するLinuxビルドをffmpeg使用するだけです。リポジトリパッケージもインストールされている場合、これらの方法のいずれかが機能するはずです。
llogan 2013

1
私はffmpegをビルドしましたが、ターミナルからffmpegを実行すると、出荷時のデフォルトが実行されており、apt-get remove ffmpegを実行しても削除されませんでした。混乱を解消するために、この問題に悩んでいる人たちにメッセージを残しました。libav-toolsとして出荷されます。
user568109 2013

これらの状況を回避するには、オープンソースコミュニティで何らかの「商標」システムが必要と思われます。
rkachach
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.