该怎么办

该怎么办

我想使用最新版本的 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/

我还是下载了它,因为它比按照第一个指南更能提供完整的构建。但是当我想自己升级库时,我不知道该怎么做。这可能吗?

http://ffmpeg.zeranoe.com/

当我将此 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 的“类似端口”的构建系统。

相关内容