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

标签 gcc ffmpeg compilation cross-compiling compiler-optimization

经过数周和大量的努力,我终于设法使用 Cygwin 和 MinGW-w64 工具链来交叉编译适用于 Windows 的 FFmpeg 的工作二进制文件,并配有出色但难以捉摸的 fdk_aac 编码器。

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

enter image description here

请注意,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/

相关文章:

compilation - JIT 编译器是否有可能在幕后利用 GPU 进行某些操作?

java - 如何用 Java 调用 ffmpeg - 变音符号?

c++ - 带有 FFMPEG 的 OpenCV RTP-Stream

c++ - 没有 Emscripten,如何使用标准库将 C++ 编译为 WebAssembly

c++ - 如何解决 gcc-3.4 错误(或者这可能不是错误)?

video - Ffmpeg drawtext过滤器创建大输出文件并占用高cpu?

c# - 如何在表单应用程序中显示控制台输出/窗口?

c++ - 将 main.cpp 更改为 main.c 并停止在 Clion 上使用 CMake 进行构建

c++ - 关于 -fPIC 的链接错误,即使所有源代码都是使用 -fPIC 编译的

c - 有没有办法使用 gcc 将 C 转换为 MIPS?