DirecTune browser audio codecs — source and license notice
Build 1, 2026-09-10

This software uses code of FFmpeg licensed under LGPL version 2.1 or later.
FFmpeg: Copyright (c) 2000-2025 the FFmpeg developers. https://ffmpeg.org/
LAME 3.100: Copyright the LAME authors, including Mike Cheng, Mark Taylor,
and contributors; see the copyright notices in the supplied source files.
https://lame.sourceforge.io/  LGPL version 2 or later.
Mediabunny 1.55.5 and encoder bridges: Copyright (c) 2026-present,
Vanilagy and contributors. https://mediabunny.dev/  MPL version 2.0.
libFLAC: Copyright (C) 2000-2009 Josh Coalson;
Copyright (C) 2011-2025 Xiph.Org Foundation. BSD license; see licenses/libFLAC-BSD.txt.
The unchanged FLAC extension identifies libFLAC git-3f1ecff8 (20260304).

ライセンス全文は /open-source/licenses/ のMPL-2.0.txt、LGPL-2.1.txt、
LGPL-2.0.txt、GPL-2.0.txt、libFLAC-BSD.txtにあります。
これらのソフトウェアの権利は各著作権者に帰属します。
各ライセンスに記載された無保証の条件が適用されます。
商用・非商用を問わず各ライセンスの条件に従って改変・再配布できます。
DirecTuneのサービス規約は、これらの権利を制限しません。

対応ソース (同じ配信元から、無料・認証不要で取得可能):
  /open-source/sources/ffmpeg-8.0.1.tar.xz
  /open-source/sources/lame-3.100.tar.gz
  /open-source/sources/mediabunny-1.55.5-source.tar.gz
一括キット (上のソース、ブリッジ、ビルドスクリプト、実ビルド設定を含む):
  /open-source/sources/browser-codecs-source-1.tar.gz
バージョン・SHA-256・配信物の対応表:
  /open-source/manifest.json

Mediabunnyの取得元:
  https://github.com/Vanilagy/mediabunny
  tag v1.55.5, commit a97e9800d2ad8f4725d6fd826ba078ac145f89a3
配信に使用するcore、shared、AAC/MP3/FLAC拡張のソースを収録しています。
上流のバージョン不明なFFmpeg WASMは本ビルドでは使用していません。
FFmpeg/LAMEのソースに変更はありません。
MediabunnyのCブリッジとエンコーダー本体のソースに変更はありません。
当社のバンドルスクリプトでWorkerを独立した配信ファイルに変更しました。
変更・再リンクに必要なソースは一括キットにすべて含まれます。
MPL対象ソースはMPL-2.0で提供します。LGPLライブラリとの結合部分には
MPL 2.0 section 3.3に従ってLGPL-2.1以降の条件も適用できます。
当社のbuild-browser-codecs.sh / bundle-browser-codecs.mjsはMITです
(一括キットのBUILD-SCRIPTS-LICENSE.txt参照)。

再ビルド (Linux / WSL; ユーザー情報やAPIキーは不要):
1. 一括キットを任意の空のディレクトリに展開して、その中へ移動します。
2. Python 3、Node.js 22、npm、make、tar、xz、gitを用意します。
3. Emscripten 4.0.15を公式emsdkから導入します:
     git clone --depth 1 --branch 4.0.15 https://github.com/emscripten-core/emsdk.git
     ./emsdk/emsdk install 4.0.15
     ./emsdk/emsdk activate 4.0.15
     source ./emsdk/emsdk_env.sh
4. バンドラーを導入します:
     npm install --no-save --package-lock=false esbuild@0.28.1
5. ビルドします (フルパスの作業用ディレクトリを指定):
     bash scripts/build-browser-codecs.sh /tmp/my-directune-codec-build
6. public/open-source/codecs/ にAACとMP3のWorker、vendor/browser-codecs/ に
   エンコーダー登録用ESモジュールが出力されます。
   configure/コンパイル/リンクの全引数はスクリプトに記載。
   当社実行時の生成設定は build-evidence/ を参照してください。
   実行場所やツール環境によってハッシュが変わることがあります。

ビルド構成:
- FFmpeg 8.0.1: AACエンコーダーのみ。GPL/nonfree/version3を無効。
  libx264、libx265、外部AACライブラリはリンクしません。
- LAME 3.100: MP3エンコーダーのみ。デコーダー・フロントエンドは無効。
  MPGLIBはリンクしません。実際のconfig.hでもHAVE_MPGLIBは未定義。
- Emscripten 4.0.15 + esbuild 0.28.1、WASM SIMD。
- FFmpeg/LAMEとCブリッジはWASMへ静的にリンクします。その全ソースと
  再リンク手順を提供し、エンコーダーはアプリと独立したWorkerにします。

差し替えてデバッグする方法:
- 必要なソースを変更して再ビルドします。アプリ独自のソースは不要です。
- Edge/Chrome DevToolsのNetworkでaac-worker-*.jsまたはmp3-worker-*.jsを
  見つけ、Local Overridesでその応答内容を自分でビルドしたWorkerの内容へ
  差し替えます。既存Workerを終了するためページを再読み込みしてください。
  AAC非対応の環境ではAAC書き出し開始時にAAC Workerが読み込まれます。
- ローカルでアプリをビルドする場合はvendor/browser-codecsのモジュールと
  public/open-source/codecsを再生成したものへ差し替えてビルドできます。
- 本番の公開Workerに改変を強制的に上書きする権限を与えるものではありません。
  自分のブラウザの応答差し替え・改変・デバッグを技術的・契約的に妨げません。

ネイティブFFmpegについて:
WSLのFFmpeg 8.0.1およびRemotionのネイティブFFmpeg n7.1は、社内の
下準備・ローカル検証用です。このブラウザWorkerに含めていません。
Remotion同梱版の情報: https://www.remotion.dev/docs/miscellaneous/ffmpeg-license
ソフトウェアの著作権ライセンスとコーデック特許の許諾は別です。

この一括キットに会員情報、APIキー、非公開の素材は含まれません。
