ffmpeg,libav和avconv之间有什么区别和相似之处? [英] What are the differences and similarities between ffmpeg, libav, and avconv?

查看:3362
本文介绍了ffmpeg,libav和avconv之间有什么区别和相似之处?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在Ubuntu上运行 ffmpeg 时,显示:

  $ ffmpeg 
ffmpeg版本v0.8,版权所有(c)2000-2011 Libav开发人员
建于2012年2月28日13:27:36与gcc 4.6.1
此程序未开发只能提供兼容性。使用avconv(请参阅更改日志中的不兼容更改列表)。

或显示(取决于Ubuntu版本):

  $ ffmpeg 
ffmpeg版本0.8.5-6:0.8.5-0ubuntu0.12.10.1,版权所有(c)2000-2012 Libav开发者
建于2013年1月24日14:49:20与gcc 4.7.2
***本程序被删除***
此程序仅提供兼容性,将在将来的版本中删除。请使用avconv。

我发现avconv在 http://libav.org 。我很困惑他们。

解决方案

令人困惑的消息



消息是令人误解和可理解的混乱的根源。较旧的Ubuntu版本使用了Libav,它是FFmpeg项目的一个分支。 FFmpeg在Ubuntu 15.04Vivid Vervet中返回。



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



真正的 ffmpeg vs假的



一段时间,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 的消息被重新写入。不幸的是,新的弃用消息引起了额外的用户混淆。



从Ubuntu 15.04Vivid Vervet开始,FFmpeg的 ffmpeg 再次再次回到存储库



为了进一步使事情复杂化,Libav选择了FFmpeg历史上使用的名称来引用它的库(libavcodec,libavformat等),这个名字是libav对Libab。例如, libav用户邮件列表,有关使用FFmpeg库的问题和讨论,与Libav项目无关。



如何区分



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



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



如果你想使用真正的 ffmpeg



Ubuntu 15.04Vivid Vervet或更新的



真正的 ffmpeg 在存储库中,因此您可以使用以下命令安装它:

  apt-get install ffmpeg 



对于较旧的Ubuntu版本



您的选项是:





这些方法是非侵入性的,可逆的,不会干扰系统或任何存储库包。



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



另请参阅



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


When I run ffmpeg on Ubuntu, it shows:

$ 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).

Or it shows (depending on the Ubuntu version):

$ 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.

I found avconv on http://libav.org. I am just perplexed by them.

解决方案

Confusing messages

These messages are rather misleading and understandably a source of confusion. Older Ubuntu versions used Libav which is a fork of the FFmpeg project. FFmpeg returned in Ubuntu 15.04 "Vivid Vervet".

The fork was basically a non-amicable result of conflicting personalities and development styles within the FFmpeg community. It is worth noting that the maintainer for Debian/Ubuntu switched from FFmpeg to Libav on his own accord due to being involved with the Libav fork.

The real ffmpeg vs the fake one

For a while both Libav and FFmpeg separately developed their own version of ffmpeg.

Libav then renamed their bizarro ffmpeg to avconv to distance themselves from the FFmpeg project. During the transition period the "not developed anymore" message was displayed to tell users to start using avconv instead of their counterfeit version of ffmpeg. This confused users into thinking that FFmpeg (the project) is dead, which is not true. A bad choice of words, but I can't imagine Libav not expecting such a response by general users.

This message was removed upstream when the fake "ffmpeg" was finally removed from the Libav source, but, depending on your version, it can still show up in Ubuntu because the Libav source Ubuntu uses is from the ffmpeg-to-avconv transition period.

In June 2012, the message was re-worded for the package libav - 4:0.8.3-0ubuntu0.12.04.1. Unfortunately the new "deprecated" message has caused additional user confusion.

Starting with Ubuntu 15.04 "Vivid Vervet", FFmpeg's ffmpeg is back in the repositories again.

libav vs Libav

To further complicate matters, Libav chose a name that was historically used by FFmpeg to refer to its libraries (libavcodec, libavformat, etc). For example the libav-user mailing list, for questions and discussions about using the FFmpeg libraries, is unrelated to the Libav project.

How to tell the difference

If you are using avconv then you are using Libav. If you are using ffmpeg you could be using FFmpeg or Libav. Refer to the first line in the console output to tell the difference: the copyright notice will either mention FFmpeg or Libav.

Secondly, the version numbering schemes differ. Each of the FFmpeg or Libav libraries contains a version.h header which shows a version number. FFmpeg will end in three digits, such as 57.67.100, and Libav will end in one digit such as 57.67.0. You can also view the library version numbers by running ffmpeg or avconv and viewing the console output.

If you want to use the real ffmpeg

Ubuntu 15.04 "Vivid Vervet" or newer

The real ffmpeg is in the repository, so you can install it with:

apt-get install ffmpeg

For older Ubuntu versions

Your options are:

These methods are non-intrusive, reversible, and will not interfere with the system or any repository packages.

Another possible option is to upgrade to Ubuntu 15.04 "Vivid Vervet" or newer and just use ffmpeg from the repository.

Also see

For an interesting blog article on the situation, as well as a discussion about the main technical differences between the projects, see The FFmpeg/Libav situation.

这篇关于ffmpeg,libav和avconv之间有什么区别和相似之处?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆