当我在 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 .我只是对他们感到困惑。
最佳答案
Libav 死了
最后一次提交是在 2019-08-21,他们关闭了 git 仓库。使用 FFmpeg。
令人困惑的消息
问题中提到的消息相当具有误导性,并且可以理解是混淆的根源。
fork 基本上是 FFmpeg 社区内性格和开发风格冲突的非友好结果。
真正的 ffmpeg
与假的
一段时间以来,Libav 和 FFmpeg 分别开发了它们自己的 ffmpeg
版本。
Libav 然后将他们奇怪的 ffmpeg
重命名为 avconv
以与 FFmpeg 项目保持距离。在过渡期间,会显示“不再开发”消息,告诉用户开始使用 avconv
,而不是他们的假冒版本 ffmpeg
。这让用户误以为 FFmpeg(项目)已经死了,但事实并非如此。用词不当,但我无法想象 Libav 不会期待普通用户的这种 react 。
当最终从 Libav 源中删除伪造的“ffmpeg
”时,此消息已在上游删除。
2012 年 6 月,the message was re-worded在 Ubuntu 中用于包 libav - 4:0.8.3-0ubuntu0.12.04.1
。不幸的是,新的“已弃用”消息导致用户更加困惑。
从 Ubuntu 15.04“Vivid Vervet”开始,FFmpeg 的 ffmpeg
是 returned to the repositories .
libav 对比 libav
为了使事情更加复杂,Libav 选择了一个 FFmpeg 历史上使用的名称来指代其库(libavcodec、libavformat 等)。例如 libav-user mailing list ,关于使用 FFmpeg 库的问题和讨论,与 Libav 项目无关。
如何区分
如果您正在使用 avconv
,那么您正在使用 Libav。如果您使用的是 ffmpeg
,您可以使用 FFmpeg 或 Libav。请参阅控制台输出中的第一行以了解不同之处:版权声明将提及 FFmpeg 或 Libav。
其次,版本编号方案不同。每个 FFmpeg 或 Libav 库都包含一个显示版本号的 version.h
header 。 FFmpeg会以三位数结尾,比如57.67.100,Libav会以一位结尾比如57.67.0。您还可以通过运行 ffmpeg
或 avconv
并查看控制台输出来查看库版本号。
另见
有关该情况的有趣博客文章,以及对项目之间主要技术差异的讨论,请参阅 The FFmpeg/Libav situation .
关于ubuntu - ffmpeg、libav、avconv有什么区别和相同点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9477115/