为什么我会选择Libav而不是FFmpeg,还是会有差异?


71

从我所看到的情况来看,我avconv认为Libav 被认为是继承人ffmpeg- 这是正确的吗?

如果那是真的,那为什么会这样呢?libav究竟做得更好,为什么我要在ffmpeg上选择呢?

我在VM中安装Ubuntu 12.04.1 LTS时遇到了这个“问题”,当我安装了ffmpeg时,它提出了一条消息告诉mit ffmpeg已被弃用,我首先想到的是“wtf?”。

如果我使用avconvWill我可以根据ffmpeg迁移我的脚本或多或少易于libav?我主要使用它来编写元数据和进行音频转换(wav,flac,vorbis,mp3,aac)。


1
ffmpeg肯定不会过时,它几乎是最好的品种。
詹姆斯坎贝尔

Answers:


93

首先看谁能告诉我ffmpeg,libav和avconv之间的区别和关系。大部分混淆是由于:

  1. 用户没有区分项目,FFmpeg和libav,以及他们各自的命令行工具,ffmpeg以及avconv
  2. 用户在尝试使用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情况


26
它超出了一个措辞严厉的信息,它是错误的。FFmpeg根本没有停止开发,事实上FFmpeg拥有比LibAV更大的社区... Ubuntu维护者发出这样的信息诱骗用户使用LibAV,因为错误地认为FFmpeg已经死了。它是100%纯粹的恶意。
MarcusJ 2015年

1
avconv甚至不支持LADSPA
Vassilis

5
@MarcusJ ......从技术上讲,它是debian维护者。但是,我同意; 这是骗人的。
Wyatt8740 2016年

对于“措辞不好的消息”这句话,它没有被低估。这是故意的错误行为。
安华7

1
@Anwar是的,似乎就是这样。这就是为什么我说它“措辞不好”,但我觉得措辞不好。
llogan

32

更新(2016年初)

  • 赔率仍然有利于ffmpeg。大多数发行版已经切换回ffmpeg(GentooDebian
  • ffmpeg的一个实际优点是广泛可用于许多平台的二进制文件。谷歌搜索静态库/动态库/二进制文件为Linux,Mac,Windows,ios和android for ffmpeg产生了良好的结果,而我只能找到libav的linux和windows版本。如果您对C / makefiles没什么经验,这可能是一个重点。

目前的情况(2015年中)

坚持使用FFmpeg似乎更好。整个情况相当混乱和丑陋。几天前我刚刚开始阅读这篇文章。无视所有的戏剧,这里似乎是事实:

  • FFmpeg包含来自libav的变更集,而libav不愿意这样做(参见debian辩论
  • Chrome使用ffmpeg,谷歌已经付出了相当大的努力使其安全。libav也在整合这些变化,但速度较慢(google blog post
  • FFmpeg尝试保留尽可能多的编解码器,而libav删除了一些(libav邮件列表从libav dev发布
  • FFmpeg社区比libav更大,最专注的开发人员(michael niedermayer)坚持使用FFmpeg(提交统计数据
  • FFmpeg的ubuntu / debian维护者是libav fork的一部分。他们在某些命令行工具中添加了弃用消息,暗示ffmpeg已弃用。这引起了很多困惑。两者的DebianUbuntu的是切换回ffmpeg的。

我碰巧是谷歌迈克尔·尼德迈耶(Michael Niedermayer),最后发表了这篇文章,他辞职了。
bzeaman 2016年

1
@bzeaman是的,我记得碰到过这个。可是他似乎仍然在平均2个合并/犯了天git.videolan.org/...
kritzikratzi

嗯没有安装候选人在deb。什么现在取代它?
Stígandr16年

nvm mind得到了libav-tools
Stígandr2016年

1
Niedermayer是分叉的原因。也就是说,他改变了很多。
Ismael Luceno 2016年

9

当你到这里时,你会看到最新的更新是2012年9月(几个月前)。

看起来这个说它只是针对Ubuntu和Debian的。

前段时间,ffmpeg以ffmpeg和libav的名义分成两个叉子。

Debian在它的发行版中跟随libav fork,在即将发布的上传中,二进制文件/ usr / bin / ffmpeg将被/ usr / bin / avconv替换。

据我所知,没有必要立即切换,但Winff应该升级为允许二进制(从Debian角度来看,优先选择avconv)。我知道你可以在首选项中设置二进制文件的位置,但我认为通过设置位置,Winff应该能够找到合适的二进制文件。

我认为将来Windows和其他发行版也可能受到这个问题的影响。

要回答关于它是否完全相同的问题:

我已经在本地结帐中实现了对正确二进制文件的检查,但是读取1,我发现avconv和ffmpeg之间存在一些不一致。这个问题更大,因为预设文件需要调整,特别是我们创建命令行的方式必须改变。对输入文件进行操作的选项需要在输入文件“-i”之前。

请注意,这可能是Windows版本特有的。这是关于Linux版本发布的:

FFmpeg音频/视频转换工具现在称为AVConv(在我看来更好的名称)。所以“ffmpeg”命令行工具已经过时,应该使用“avconv”。据我所知,所有参数保持不变,但应进一步调查。需要在CIS中进行一些修改。

任务:

在运行CIS的计算机上安装AVConv。通常avconv应该出现更新ffmpeg(适用于Ubuntu;未针对Debian进行测试)。将“ffmpeg”替换为cis / api / ffmpeg.py中的“avconv”,类FFmpegTranscoder,字段prog_bin,表示转换工具可执行文件。重构包含“FFmpeg”或“ffmpeg”的文件名,类名,方法名,变量名等,使它们包含AVConv。像Eclipse这样的IDE可以自动执行此操作。测试!如果发现问题,请调试!


9
我非常不同意“ffmpeg已经过时且应该使用avconv”的帖子。
slhck 2014年

@slhck当你要求项目时,这似乎是标准做法。您可以欺骗用户认为主分支已经过时的用户越多,您的分叉就越好。
user20574年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.