我的问题类似于这个这是近三年前提出的问题。
我想在 Mac OS X 上编译支持 MP3、AAC 等的 Chromium(我使用的是 10.11.6 El Capitan)。到目前为止,我设法按照以下标准设置对其进行了编译:chromium.org 上的说明. 运行HTML5测试我意识到默认情况下它不支持像 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
我将两者都添加到我的 args.gn 中,gn args out/gn
但是在使用如下几十行代码构建时导致了链接器错误:
duplicate symbol in:
obj/components/policy/proto/libproto_internal.a(device_management_backend.pb.o)
我删除了第一个标志并ninja
再次运行,结果在几秒钟后出现了相同的链接器错误。我改变了一下,现在删除了我添加的第二个标志,然后它又开始编译了。
成功编译一个小时后,结果与之前相同,但 HTML5Test 结果仍不支持 MP3/AAC。
我现在的问题是,如何编译支持这些编解码器的 Chromium?
答案1
为了完成官方说明,你会看到其他信息这个 GitHub 页面使用所有编解码器(默认编解码器 + AAC、H264/AVC、H265/HEVC、MPEG-4)编译 Chromium。它专注于 Windows 操作系统,但在 MacOS 上类似。使用 GN 标志。注意 H265/HEVC 编译更复杂。
例如,我们使用此设置来构建和共享我们自己的适用于 Windows 和 MacOS 的 Chromium 版本(本网站提供二进制文件)。所以你可以自己做一个类似的 Chromium 版本!;)