经过数周和大量的努力,我终于设法使用 Cygwin 和 MinGW-w64 工具链来交叉编译适用于 Windows 的 FFmpeg 的工作二进制文件,并配有出色但难以捉摸的 fdk_aac 编码器。
但是,将我新编译的二进制文件与 Windows 的官方预编译版本进行比较让我觉得有点……缺乏(第一次运行是 Zeranoe 版本,第二次是我自己的):
请注意,Zeranoe 构建的标语是如何缺少除了外部库之外的所有看起来不合时宜的配置选项。除此之外,它还在 GCC 版本之后插入了该程序的构建日期。
此版本的编译器如何能够将这些增强功能添加到他们的二进制文件中,我该如何做呢?我假设这些只是 GCC 或预处理器选项,我找不到任何信息,或者可能还有更多信息。
注意:我知道 --no-banner
切换到 FFmpeg,这不是我在这里想要做的。
最佳答案
这些不是 GCC 选项,它们是对源代码的直接更改。
您可以在 cmdutils.c
中手动编辑横幅上显示的内容。 FFmpeg 源文件中的文件 - 在函数 print_program_info
中,第 1145 至 1157 行:
static void print_program_info(int flags, int level)
{
const char *indent = flags & INDENT? " " : "";
av_log(NULL, level, "%s version " FFMPEG_VERSION, program_name);
if (flags & SHOW_COPYRIGHT)
av_log(NULL, level, " Copyright (c) %d-%d the FFmpeg developers",
program_birth_year, CONFIG_THIS_YEAR);
av_log(NULL, level, "\n");
av_log(NULL, level, "%sbuilt with %s\n", indent, CC_IDENT);
av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent);
}
在那里,您可以手动将当前日期等内容添加到函数中,或者完全删除内容。
关于gcc - 如何美化我编译的 FFmpeg 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55467312/