当我在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。我只是被他们困惑。
答案 0 :(得分:435)
这些消息具有误导性,可以理解为混淆的根源。较旧的Ubuntu版本使用了Libav,它是FFmpeg项目的一个分支。 FFmpeg在Ubuntu 15.04“Vivid Vervet”中返回。
分支基本上是FFmpeg社区内个性和发展风格冲突的非友好结果。值得注意的是,Debian / Ubuntu的维护者由于涉及Libav fork而自行从FFmpeg切换到Libav。
ffmpeg
与假的有一段时间,Libav和FFmpeg分别开发了自己的ffmpeg
版本。
然后,Libav将他们的bizarro ffmpeg
重命名为avconv
,以便与FFmpeg项目保持距离。在过渡期间,显示“不再开发”消息,告诉用户开始使用avconv
而不是伪造版ffmpeg
。这让用户误以为FFmpeg(项目)已经死了,这不是真的。一个糟糕的选择,但我无法想象Libav不会期待普通用户的这种反应。
当假冒“ffmpeg
”最终从Libav源中删除时,上游删除了此消息,但是,根据您的版本,它仍然可以显示在Ubuntu中,因为Ubuntu使用的Libav源来自ffmpeg到avconv过渡期。
2012年6月,libav - 4:0.8.3-0ubuntu0.12.04.1
包ffmpeg
。不幸的是,新的“弃用”消息引起了额外的用户混淆。
从Ubuntu 15.04“Vivid Vervet”开始,FFmpeg的avconv
再次为the message was re-worded。
为了使问题更加复杂,Libav选择了一个历史上由FFmpeg用来引用其库(libavcodec,libavformat等)的名称。例如,关于使用FFmpeg库的问题和讨论,back in the repositories与Libav项目无关。
如果您使用的是ffmpeg
,那么您使用的是Libav。如果您使用version.h
,则可以使用FFmpeg或Libav。请参阅控制台输出中的第一行来说明不同之处:版权声明将提及FFmpeg或Libav。
其次,版本编号方案不同。每个FFmpeg或Libav库都包含一个ffmpeg
标题,显示版本号。 FFmpeg将以三位数结尾,例如57.67。 100 ,而Libav将以一位数结束,例如57.67。 0 。您还可以通过运行avconv
或ffmpeg
并查看控制台输出来查看库版本号。
ffmpeg
真实apt-get install ffmpeg
位于存储库中,因此您可以使用以下命令安装它:
ffmpeg
您的选择是:
ffmpeg
,ffmpeg
(适用于Ubuntu 14.04 LTS“Trusty Tahr”)这些方法是非侵入性的,可逆的,不会干扰系统或任何存储库包。
另一种可能的选择是升级到Ubuntu 15.04“Vivid Vervet”或更新版,只需从存储库中使用{{1}}。
有关情况的有趣博客文章,以及有关项目之间主要技术差异的讨论,请参阅Doug McMahon's PPA。