如何美化我编译的 FFmpeg 二进制文件?

How can I prettify my compiled binary of FFmpeg?

经过数周 大量 的努力,我终于设法使用 Cygwin 和 MinGW-w64 工具链为 [=32= 交叉编译了 FFmpeg 的工作二进制文件],完成高级但难以捉摸的 fdk_aac 编码器。

然而,将我新编译的二进制文件与 Windows 的官方预编译版本进行比较让我觉得有点......缺乏(第一个 运行 是 Zeranoe 版本,第二个是我的自己):

请注意 Zeranoe 构建的标语如何缺少除外部库之外的所有外观不佳的配置选项。除此之外,它还在 GCC 版本之后插入了程序构建的日期。

此版本的编译器如何能够将这些增强功能添加到他们的二进制文件中,我该如何做?我假设这些只是我找不到任何信息的 GCC 或预处理器选项,或者可能不止于此。

N.B:我知道 FFmpeg 的 --no-banner 开关,这不是我在这里要做的。

这些不是 GCC 选项,它们是对源代码的直接更改。

您可以手动编辑 FFmpeg 源中 cmdutils.c 文件中横幅上显示的内容 - 在函数 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);
}

在那里,您可以手动向函数添加当前日期等内容或完全删除内容。