【问题标题】:What are the differences and similarities between ffmpeg, libav, and avconv?ffmpeg、libav、avconv有什么区别和相似之处?
【发布时间】:2012-03-17 15:21:34
【问题描述】:

当我在 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。我只是被他们弄糊涂了。

【问题讨论】:

  • 这意味着您提供了错误的命令行参数。
  • This program is not developed anymore and is only provided for compatibility. Use avconv instead
  • 你想做什么? ffmpeg 主要是库,而主要的 ffmpeg 命令行更多地用于演示其功能(尽管如果有帮助,您使用也没关系)。如果你只想用作命令,有很多应用程序使用 ffmpeg 来做你想做的事情。
  • blog.pkh.me/p/13-the-ffmpeg-libav-situation.html 有对整个交易的有用解释
  • 我不能告诉你所有的区别,但是: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 确实按预期工作,即使文档匹配

标签: ubuntu audio ffmpeg libavcodec libav


【解决方案1】:

Libav 已死

Last commit 于 2019-08-21。使用 FFmpeg。

令人困惑的消息

问题中提到的信息具有相当的误导性,可以理解为造成混淆。

分叉基本上是 FFmpeg 社区中个性和开发风格冲突的不友好结果。

真正的ffmpeg vs 假的

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

Libav 然后将他们的 bizarro ffmpeg 重命名为 avconv 以与 FFmpeg 项目保持距离。在过渡期间,会显示“不再开发”消息,告诉用户开始使用avconv,而不是他们的假冒版本ffmpeg。这让用户误以为 FFmpeg(项目)已经死了,这是不正确的。用词不当,但我无法想象 Libav 不会期待普通用户的回应。

当伪造的“ffmpeg”最终从 Libav 源中删除时,此消息已在上游删除。

2012 年 6 月,the message was re-worded 在 Ubuntu 中为软件包 libav - 4:0.8.3-0ubuntu0.12.04.1。不幸的是,新的“已弃用”消息引起了更多的用户困惑。

从 Ubuntu 15.04 “Vivid Vervet”开始,FFmpeg 的ffmpegreturned 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 标头,其中显示版本号。 FFmpeg 会以三位数结尾,例如 57.67.100,而 Libav 会以一位数结尾,例如 57.67.0。您还可以通过运行ffmpegavconv 并查看控制台输出来查看库版本号。

另见

有关该情况的有趣博客文章以及有关项目之间主要技术差异的讨论,请参阅The FFmpeg/Libav situation

【讨论】:

  • 看起来是个人问题
  • 如果即使在安装了真正的 ffmpeg 之后你也无法让它工作。您应该删除 ubuntu 附带的默认 ffmpeg 作为 libav-tools,请参阅:askubuntu.com/questions/162740/how-do-i-uninstall-ffmpeg
  • @user568109 这取决于你如何安装 ffmpeg。请参阅How to Compile FFmpeg on Ubuntu, Debian, or Mint 或仅使用Linux build of ffmpeg。如果还安装了存储库包,则这些方法中的任何一个都应该有效。
  • 我确实构建了 ffmpeg,但是当从终端运行 ffmpeg 时,出厂默认设置正在运行,并且执行 apt-get remove ffmpeg 并没有将其删除。所以我给那些被这个问题困扰的人留言,只是为了消除混乱。它作为 libav-tools 提供。
  • Libav 现在似乎已经死了(最后一次提交是 2019 年 8 月),而 FFmpeg 继续积极开发
猜你喜欢
  • 2012-09-08
  • 2015-08-04
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 2010-12-21
相关资源
最近更新 更多