Libav 和 FFmpeg 是什么关系?

2025-05-19 14:12:22
推荐回答(1个)
回答1:

libav 的开发者倾向于"开发"而不是"维护",当然,这里只是倾向,不代表真的不维护。

ffmpeg 的维护者倾向于保持API接口的稳定,所以在技术上会把libav当作一个重要的fork,定期从libav同步修改,甚至不惜加入一些专门用来兼容的代码,以便兼容 libav 自行新增的接口和定义, github提供的网络图清晰的展现了这个合并历史

关于二者的矛盾,有一封比较有意思的邮件

PS: 这封邮件的发送者 Michael Niedermayer 是 ffmpeg 现在的主要维护者,也是当年分裂事件的ffmpeg 方的主要当事人。

因为 ffmpeg 会定期从 libav 同步修改,所以可以认为每一个提交给 libav 的修改,都会被 ffmpeg 的维护者合并,或者至少复审一遍。反之,就我的观察,libav 似乎还没有这样一个工兵角色做日常合并,基本靠开发者自发的提交。另外,ffmpeg 对安全性相关的问题也会相对更加重视,只不过,大多数这种社区开源项目在这方面都是千疮百孔…

考虑到二者技术上的包含关系,除非真的想要成为libav社区的一员,否则,不管是实际应用还是学习,ffmpeg 都是优于 libav 的选择。