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

why*_*why 243 audio ubuntu ffmpeg libavcodec libav

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

$ 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).
Run Code Online (Sandbox Code Playgroud)

或者它显示(取决于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.
Run Code Online (Sandbox Code Playgroud)

我在http://libav.org上找到了avconv .我只是被他们困惑了.

llo*_*gan 460

令人困惑的消息

这些消息相当误导,可以理解是混淆的根源.较旧的Ubuntu版本使用了Libav,它是FFmpeg项目的一个分支.FFmpeg在Ubuntu 15.04"Vivid Vervet"中返回.

这个分支基本上是FFmpeg社区中个性和发展风格冲突的非友好结果.值得注意的是,由于参与了Libav fork,Debian/Ubuntu的维护者自己从FFmpeg切换到了Libav.

真实的ffmpeg与假的

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

Libav然后改名为他们比扎罗ffmpegavconv从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.04"鲜艳黑脸"开始,FFmpeg的ffmpeg早在库一次.

利比亚与利比亚

更复杂的是,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
Run Code Online (Sandbox Code Playgroud)

适用于较旧的Ubuntu版本

你的选择是:

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

另一种可能的选择是升级到Ubuntu 15.04"Vivid Vervet"或更新版本,只需ffmpeg从存储库中使用即可.

另见

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

  • 看起来这是个人问题 (82认同)
  • 此外,Libav 现在似乎已经死了(最后一次提交于 2019 年 8 月),而 FFmpeg 仍在积极开发 (2认同)