元件與授權

這個頁面裡的編碼器不是重寫的,是把各專案的參考實作原始碼 用 Emscripten 編成 WebAssembly。所有編碼與解碼都在你的瀏覽器裡跑, 你選的音檔不會被上傳到任何地方

編碼器

模組來源授權
SBCbluez 2.1 的 sbc/LGPL-2.1+
aptX / aptX HDlibfreeaptx 0.2.2LGPL-2.1+
LC3google/liblc3Apache-2.0
LDAC 編碼器AOSP external/libldac(Sony 官方)Apache-2.0
LDAC 解碼器hegdi/libldacdec(逆向工程)MIT
MP3 LAMELAME 3.100LGPL-2
MP3 shineshineLGPL-2
Opuslibopus 1.5.2BSD 3-Clause
AAC-LCffmpeg 原生 aac 編解碼器(commit ee1f79b0fa)LGPL-2.1+

AAC 從 2026-07-29 起改成 ffmpeg 自己的原生編碼器,不再是瀏覽器內建的 那顆。差別:瀏覽器那顆是第三個實作、架構沒有公開文件、而且 Firefox 與不含專利 編碼器的 Chromium 根本沒有它。現在這顆與其他七個同一個信任等級, 已驗證與 ffmpeg.exe -cpuflags 0 逐位元相同。

⚠ AAC 的專利

上面那一列講的是程式碼的授權(LGPL-2.1+,可以再散布)。 AAC 這個格式本身另外受一組專利保護,授權由 Via LA 之類的專利池管理, 與原始碼授權是兩回事。個人研究與測試用途通常不是問題,但如果你要把這個頁面 用在商業產品上,那是要另外處理的事情。這裡把話講明,不代表這是法律意見。

⚠ LHDC v5 的授權狀態不明

LHDC 的編碼器是 Apache-2.0,沒有問題。但目前唯一可用的 解碼器(WillyBilly06/LHDC-V5-Decoder) 的授權檔已於 2026-07-04 被上游刪除,README 雖仍寫 Apache-2.0,但檔案不在。 沒有明確授權在法律上就是保留所有權利。

這一份部署包含 LHDC,是部署者明知上述狀況後的決定, 用途為個人測試。若你不是部署者,請不要把這裡的 LHDC 二進位檔再散布出去; 正確的解法是請上游作者把授權檔補回來。

LGPL 元件的原始碼

SBC、aptX、LAME、shine、ffmpeg(AAC)是 LGPL。上面每個連結都是未經修改的上游原始碼; 本專案另外加的只有薄薄一層 C 介面(tools/wasm_src/*.c)。 重新建置這些 .wasm 的完整指令是:

bash tools/build_wasm.sh

驗證建置正確的指令是 bash tools/verify_wasm.sh, 它會把 WebAssembly 的位元流與原生建置、以及各專案自己的參考工具逐位元比對。

這些數字能不能引用

WASM 編碼器已驗證與原生逐位元相同,所以它們的行為就是參考實作的行為。 但 AAC 例外 —— 那是瀏覽器內建的實作,架構沒有公開文件, 在這裡只適合用耳朵聽,不適合當數據來源。

← 回到比較器