如何编译支持 MP3/AAC 和 H264 的 Chromium

com*_*eak 6 mp3 h.264 google-chrome ffmpeg chromium

我的问题是类似于这一个这是近3年前问。

我想在 Mac OS X 上编译支持 MP3、AAC 等的 Chromium(我使用的是 10.11.6 El Capitan)。到目前为止,我设法根据chromium.org上的说明使用标准设置编译它。运行HTML5Test 后,我意识到默认情况下它不支持专有编解码器(如 MP3)进行编译。

经过一番谷歌搜索后,我在 Chromium.org 网站上找到了这个页面,其中提到了一些编译器标志:

ffmpeg_branding
  Overrides which version of FFmpeg to use
  Default: $(branding)
  Values:
    Chrome - includes additional proprietary codecs (MP3, etc..) for use with Google Chrome
    Chromium - builds default set of codecs

proprietary_codecs
  Alters the list of codecs Chromium claims to support, which affects <source> and canPlayType() behaviour
  Default: 0(gyp)/false(gn)
  Values:
    0/false - <source> and canPlayType() assume the default set of codecs
    1/true - <source> and canPlayType() assume they support additional proprietary codecs
Run Code Online (Sandbox Code Playgroud)

我将这两个都添加到我的 args.gn 中,gn args out/gn但在使用如下数十行构建时导致链接器错误:

duplicate symbol  in: 
    obj/components/policy/proto/libproto_internal.a(device_management_backend.pb.o)
Run Code Online (Sandbox Code Playgroud)

我删除了第一个标志并ninja再次运行,结果仅在几秒钟后就出现了相同的链接器错误。我改变了一切,现在省略了我添加的第二个标志,它重新开始编译。

成功编译一个小时后,它的结果与之前相同的版本给我相同的 HTML5Test 结果,不支持 MP3/AAC。

我现在的问题是,如何在支持这些编解码器的情况下编译 Chromium?

Jer*_*rry 2

为了完成官方说明,您将在此 github 页面上看到其他信息,以使用所有编解码器(默认编解码器 + AAC、H264/AVC、H265/HEVC、MPEG-4)编译 Chromium。它专注于 Windows 操作系统,但在 MacOS 上类似。使用 GN 标志。注意 H265/HEVC 编译更为复杂。

例如,我们使用此设置来构建和共享我们自己的适用于 Windows 和 MacOS 的 Chromium 版本(本网站上提供了二进制文件)。所以你可以自己做一个类似的Chromium版本!;)