如何編譯支援 MP3/AAC 和 H264 的 Chromium

如何編譯支援 MP3/AAC 和 H264 的 Chromium

我的問題類似於這個這是近三年前提出的問題。

我想在 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版本! ;)

相關內容