私の質問は、ほぼ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をコンパイルするにはどうすればよいですか?
公式の説明 を完了するために、 このgithubページ に他の情報が表示され、すべてのコーデック(デフォルトのコーデック+ AAC、H264/AVC、H265/HEVC)でChromiumをコンパイルします、MPEG-4)。 Windows OSに焦点を当てていますが、MacOSでも同様です。 GNフラグを使用します。 H265/HEVCコンパイルはより複雑であることに注意してください。
たとえば、この設定を使用して、WindowsおよびMacOS用の独自のChromiumバージョンを構築および共有します( このWebサイトで利用可能なバイナリ )。したがって、同様のChromiumバージョンを自分で実行できます。 ;)