首先看谁能告诉我ffmpeg,libav和avconv之间的区别和关系。大部分混淆是由于:
- 用户没有区分项目,FFmpeg和libav,以及他们各自的命令行工具,
ffmpeg
以及avconv
。
- 用户在尝试使用libav时得到的措辞不佳的消息
ffmpeg
。
FFmpeg vs ffmpeg
和libav vsavconv
- FFmpeg是项目名称。
ffmpeg
是他们的命令行工具的名称。
- libav是项目名称。
avconv
是他们的命令行工具的名称。libav也有一段时间ffmpeg
。
当讨论“工具”时,用户经常会想到“项目”,这会导致......
一个措辞不好的消息
所以,正如我们从谁可以告诉我...链接,当libav从FFmpeg分叉时,他们也暂时提供了他们的版本ffmpeg
。作为libav的成员,Debian和Ubuntu中的ffmpeg维护者决定将发行版切换为使用libav。从libav的角度来看,这是他们最好的举动:强迫大型用户社区使用fork。
在libav提供他们的版本ffmpeg
和他们的重命名工具的过渡时期,Ubuntu进行了切换avconv
。当用户尝试使用libav时,ffmpeg
他们收到以下消息:
This program is not developed anymore and is only provided for compatibility.
Use avconv instead (see Changelog for the list of incompatible changes).
在这种情况下,消息中提到的“ffmpeg”是libav的临时版本,后来被删除了(就像消息一样)。还记得FFmpeg和ffmpeg
?之间的区别吗?当然,这个消息彻底混淆了许多用户,他们可以理解地没有区分项目和工具; 特别是Ubuntu用户,他们不知道他们的发行版做了一个switcharoo或用户从未听说过libav。我不知道libav是否会让用户想到这一点,但他们可能会喜欢这种副作用。
一些Ubuntu用户认为该消息过于误导,后来改为:
***THIS PROGRAM IS DEPRECATED***
This program is not developed anymore and is only provided for compatibility.
Use avconv instead (see Changelog for the list of incompatible changes).
我的意见略有改善,但我觉得好像不够清楚。
我用哪一个?
没有人能告诉你使用哪一个。用户的主要区别在于FFmpeg合并了许多来自libav的提交,但它并不是那么互惠,因为libav似乎假装FFmpeg不存在而且偶尔会从FFmpeg中挑选出来。
对于临时用户来说,应该没有太大的差异。对于想要使用FFmpeg的Ubuntu用户,可以按照如何编译FFmpeg和x264,使用Jon Severinsson的FFmpeg PPA编译它,或者从FFmpeg下载页面获取一个简单的静态二进制文件。
有关更多信息,请参阅FFmpeg / Libav情况。