我想使用最新版本的 ffmpeg 和最新版本的外部库。我该怎么做?顺便说一句,我昨天才开始使用 Linux,所以请轻松一点 :)
http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
首先我看了本指南但它没有涵盖所有图书馆并且有点过时。
http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu#GettheDependencies
第一步,它会要求你从软件中心安装一些库,这些库很可能提供旧版本。例如 libvorbis-dev
此外,我甚至不知道如何升级库或 ffmpeg,而无需重新做所有事情。这对我来说解释得不太清楚:
http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu#update
然后我发现这个静态构建在 ffmpeg.org 上推荐,但同样,它不包含所有外部库,其中一些不是最新的:
http://johnvansickle.com/ffmpeg/
我还是下载了它,因为它比按照第一个指南更能提供完整的构建。但是当我想自己升级库时,我不知道该怎么做。这可能吗?
当我将此 Linux 版本与 Zeranoe 的流行 Windows 版本进行比较时,Zeranoe 提供了几乎所有库,并且似乎更为最新。它未包含的唯一库在其常见问题解答中进行了解释:
从http://ffmpeg.zeranoe.com/faq/
为什么构建不包括 FAAC、FDK-AAC 和 libaacplus?
这些库与 GPL 许可证不兼容,如果不将版本授权为非自由版本,则无法将其包含在内。非自由版本无法公开分发。
说到“未包含的库”,我可以手动将它们添加到任何静态构建中吗?在 Linux 或 Windows 上,这无关紧要。我只是想了解静态构建的基础知识。
如果可以的话,我会手动将所有非自由库添加到 Zeranoe 的构建中,然后用 aoTuV 的 libvorbis 替换 libvorbis,后者是 libvorbis 的修改版本,据称在某些方面更好。当然,替换 libvorbis 似乎不是一个好主意,如果可能的话,我会保留它们两个,但将 libvorbis 设置为默认编码器。
答案1
首先我查看了本指南,但它没有涵盖所有库,而且有点过时。第一步,它会让你从软件中心安装一些库,这些库很可能提供旧版本。例如 libvorbis-dev
本指南使用存储库中的一些软件包以方便用户使用。其中许多软件包(例如 libvorbis-dev)处于成熟状态,并且被认为相对较新,因此编译最新版本可能没有什么区别。您必须参考每个软件包。
当然,您始终可以编译每个依赖项,而不是依赖于存储库中的版本:只需根据指南中的示例调整编译的其他依赖项即可。
而且我甚至不知道如何升级一个库或 ffmpeg,而无需重新做所有事情。
如果您按照本指南操作,并升级库,则必须重新编译ffmpeg
才能利用升级。指南指示用户只需删除旧的编译内容(不会干扰系统文件)并重新开始。
如果你要经常重新编译,我建议使用git
来检索源代码,而不是使用指南中所示的版本和快照。请参阅FFmpeg Wiki:为 CentOS 编译 FFmpeg例如使用git
。
然后我发现这个静态构建在 ffmpeg.org 上推荐,但同样,它不包含所有外部库
为什么要包括全部外部库?对我来说似乎是在浪费时间和精力。只需包含您实际要使用的内容。您真的需要那些晦涩难懂的东西和极端情况吗?
说到“未包含的库”,我可以手动将它们添加到任何静态构建中吗?
不。
该怎么办
我建议遵循编译指南并根据您的需要进行调整。这是编译的主要原因之一,因此您可以根据自己的喜好进行自定义。
调查共享版本是否更适合您。然而,这可能会带来一系列新的麻烦。
此外,Ubuntu 似乎已经不再适合您了,对于想要使用前沿技术的用户来说,它并不是最好的发行版。我建议尝试 Arch Linux;它的 repo 包与上游保持同步,而且整个自定义 repo 包的方法在使用 Arch Linux 时更加合理。防抱死制动系统以及 Arch 的“类似端口”的构建系统。