web-dev-qa-db-ja.com

MP3 / AACおよびH264をサポートするChromiumをコンパイルする方法

私の質問は、ほぼ3年前に尋ねられた これ に似ています。

Mac OS X(10.11.6 El Capitanを使用)でMP3、AACなどをサポートするChromiumをコンパイルしたいと思います。これまでのところ、 chromium.orgの指示 に従って標準設定でコンパイルすることができました。 HTML5Test を実行した後、デフォルトではMP3などのプロプライエタリコーデックをサポートしてコンパイルされないことに気付きました。

いくつかのグーグルの後、私はいくつかのコンパイラフラグに言及しているChromium.org Webサイトで このページ を見つけました:

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

gn args out/gnを使用して両方をargs.gnに追加しましたが、次のような数十行でビルドするとリンカーエラーが発生しました。

duplicate symbol  in: 
    obj/components/policy/proto/libproto_internal.a(device_management_backend.pb.o)

最初のフラグを削除してninjaを再度実行すると、わずか数秒後に同じリンカーエラーが発生しました。状況を切り替えて、追加した2番目のフラグを省略したところ、コンパイルが再開されました。

さらに1時間正常にコンパイルすると、以前と同じバージョンになり、MP3/AACをサポートしていないという同じHTML5Testの結果が得られます。

私の質問は、これらのコーデックをサポートしてChromiumをコンパイルするにはどうすればよいですか?

6
comfreak

公式の説明 を完了するために、 このgithubページ に他の情報が表示され、すべてのコーデック(デフォルトのコーデック+ AAC、H264/AVC、H265/HEVC)でChromiumをコンパイルします、MPEG-4)。 Windows OSに焦点を当てていますが、MacOSでも同様です。 GNフラグを使用します。 H265/HEVCコンパイルはより複雑であることに注意してください。

たとえば、この設定を使用して、WindowsおよびMacOS用の独自のChromiumバージョンを構築および共有します( このWebサイトで利用可能なバイナリ )。したがって、同様のChromiumバージョンを自分で実行できます。 ;)

1
Jerry