ffmpeg,libav和avconv有什么区别和相似之处?

当我在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。 我只是被他们困惑。


混淆消息

这些信息颇具误导性,并且可以理解为混淆的来源。 较早的Ubuntu版本使用了Libav,这是FFmpeg项目的一个分支。 FFmpeg在Ubuntu 15.04“Vivid Vervet”中返回。

这个分支基本上是FFmpeg社区中个性和开发风格相互冲突的不友好的结果。 值得注意的是,Debian / Ubuntu的维护者由于涉及到Libav fork而自己从FFmpeg切换到Libav。

真正的ffmpeg vs假的

一段时间,Libav和FFmpeg都分别开发了自己的ffmpeg版本。

Libav然后将他们的bizarro ffmpeg重命名为avconv以便与FFmpeg项目保持距离。 在过渡期间,显示“不再发展”的消息,告诉用户开始使用avconv而不是伪造的ffmpeg版本。 这使用户误以为FFmpeg(该项目)已经死亡,这是不正确的。 语言选择不好,但我无法想象Libav没有期待普通用户做出这样的回应。

当假的“ ffmpeg ”最终从Libav源代码中删除时,这条消息被上游移除了,但根据你的版本,它仍然可以在Ubuntu上显示,因为Ubuntu使用的Libav源代码是从ffmpeg-to-avconv过渡期。

2012年6月,该消息被重新包装为libav - 4:0.8.3-0ubuntu0.12.04.1 。 不幸的是,新的“弃用”消息已经引起了额外的用户混淆。

从Ubuntu 15.04“Vivid Vervet”开始,FFmpeg的ffmpeg又一次回到了存储库。

libav vs Libav

更复杂的是,Libav选择了FFmpeg历史上使用的名称来指代其库(libavcodec,libavformat等)。 例如,有关使用FFmpeg库的问题和讨论,libav-user邮件列表与Libav项目无关。

如何区分差异

如果您使用的是avconv那么您正在使用Libav。 如果您使用的是ffmpeg ,则可以使用FFmpeg或Libav。 请参阅控制台输出中的第一行以说明不同之处:版权声明将提及FFmpeg或Libav。

其次,版本编号方案不同。 每个FFmpeg或Libav库都包含一个version.h头文件,其中显示了一个版本号。 FFmpeg将以三位数字结尾,例如57.67。 100 ,Libav将以一位数结尾,如57.67。 0 。 您还可以通过运行ffmpegavconv并查看控制台输出来查看库版本号。

如果你想使用真正的ffmpeg

Ubuntu 15.04“Vivid Vervet”或更新版本

真正的ffmpeg位于存储库中,因此您可以通过以下方式进行安装:

apt-get install ffmpeg

对于较旧的Ubuntu版本

您的选择是:

  • 下载最新的Linux版本的ffmpeg
  • 按照一步一步的指导来编译ffmpeg
  • 或使用Doug McMahon的PPA(Ubuntu 14.04 LTS“Trusty Tahr”)
  • 这些方法是非侵入式的,可逆的,并且不会干扰系统或任何存储库软件包。

    另一个可能的选择是升级到Ubuntu 15.04“Vivid Vervet”或更新的版本,只需使用存储库中的ffmpeg

    另见

    有关这种情况的一篇有趣的博客文章,以及关于项目之间主要技术差异的讨论,请参阅FFmpeg / Libav情况。

    链接地址: http://www.djcxy.com/p/67549.html

    上一篇: What are the differences and similarities between ffmpeg, libav, and avconv?

    下一篇: How can libavformat be used without using other libav libraries?