我正在使用一些基于 gstreamer 的应用程序和一些其他流媒体内容,但我有些困惑:libav 和 ffmpeg 之间有什么区别?
我没有找到解释它们是什么以及它们有何不同。还有更多的工具叫做 ffmpeg,而其他的也有同样的东西。甚至那些项目标志也是一样的。更糟糕的是,即使使用它们的外部应用程序也会错误地命名它们,混合它们(gstreamer-0.10 指的是 ffmpeg,而 gstreamer-1.0 指的是 libav)。
有没有简单的方法可以找出应用程序真正需要和使用哪个库?是否有任何技术(非政治软件许可废话)差异为什么项目分裂,我应该知道何时应该与他们合作?
更新:评论中有人提供了与图书馆历史和有用信息相关的问题的链接。但是我怀疑我的问题是完全重复的:
很久以前有个项目叫FFmpeg。FFmpeg 项目创建了一个名为ffmpeg
. 在项目早期的某个时候,人们决定 FFmpeg 非常复杂,应该分解成较小的库,以便其他人可以在他们的应用程序中使用。这些库被称为 libav*。它们包括 livavformat、libavcodec、libavutil 等。该ffmpeg
应用程序只是通过命令行与这些库进行交互的一种方式。
在某些时候,FFmpeg 的一些贡献者不喜欢该项目的管理方式(我认为他们想要更多的版本而不太重视稳定性和向后兼容性,但我可能是错的),所以他们分手了。他们开始修复不一致的 API,添加新的编解码器等。他们发布了 CLI 前端调用avconv
来替换ffmpeg
可执行文件。许多原本希望ffmpeg
在系统上看到的软件坏了。所以avconv
可执行文件被重命名ffmpeg
。
现在 Libav 项目与 libav* 库配合得很好。于是 FFmpeg 项目开始合并 Libav 所做的更改。从而使线条更加模糊。
所以,回答你的问题。您不需要考虑太多政治问题,但是两者之间的某些命令/API 可能略有不同。然而,这不应该是一个太大的问题。您可以将它们视为同一事物的不同版本。
归档时间: |
|
查看次数: |
2941 次 |
最近记录: |