mp3gain / aacgain の後継 · v3.16.2

音質を劣化させずに
MP3 と AAC の音量を揃える

mp3rgain は、mp3gain と aacgain の代わりに使える、無料でメンテナンスの続いているソフトです。各フレームのゲイン値を書き換えて音量を揃えるので、再エンコードは行いません。変更はどの機器でもそのまま再生され、コマンド 1 つで元に戻せます。

  • オープンソース (MIT)
  • Windows / macOS / Linux
  • 日本語対応のデスクトップアプリ
  • 無料、広告なし
3 曲を 1 つの音量に1 ステップ = 1.5 dB
−4.5 dB −3 steps +6.0 dB +4 steps +1.5 dB +1 step
インストール

mp3rgain を入手する

同じ処理エンジンを使う 2 つのプログラムがあります。ドラッグ&ドロップで使えるデスクトップアプリの mp3rgui と、mp3gain と同じオプションで動くコマンドラインツールの mp3rgain です。

Windows

お使いの OS

Windows 10 / 11、x64 と ARM64

デスクトップアプリ (mp3rgui)。ターミナルも管理者権限も不要です。

コマンドライン
winget install M-Igashi.mp3rgain

macOS

お使いの OS

macOS 11 以降、Apple シリコンと Intel

brew install --cask M-Igashi/tap/mp3rgui

デスクトップアプリ。署名と公証済みです。DMG は GitHub Releases にもあります。

コマンドライン
brew install M-Igashi/tap/mp3rgain

Linux

お使いの OS

x86_64 と ARM64

sudo apt install mp3rgui

どちらも apt リポジトリ を一度追加すれば入ります(Debian 12 以降、Ubuntu 22.04 以降。アプリは Debian 13 / Ubuntu 24.04 以降)。AUR にもあります。

コマンドライン
sudo apt install mp3rgain

MacPorts、AUR、Nix、pkgx、Termux、Docker (GHCR)、crates.io からも入手できます。すべての方法と apt リポジトリの設定、動作確認、困ったときの対処は インストールガイド にあります。

仕組み

変わるのは音量だけ。音声データは変わりません。

MP3 と AAC の各フレームには、デコーダーにどれだけの大きさで再生するかを伝える global_gain という値があります。mp3rgain は音量を測定し、この値だけを書き換えます。隣にある圧縮済みの音声データには触れません。

  1. 測定する

    ReplayGain の解析で、各曲(またはアルバム全体)が基準の音量からどれだけ離れているかを求めます。この時点では何も書き込みません。-n を付ければ実行結果を事前に確認できます。

  2. ゲイン値を書き換える

    補正は 1.5 dB 刻みで全フレームに適用されます。変更がファイル自体に入るので、ReplayGain タグを無視するカーステレオや携帯プレーヤー、アプリでも補正後の音量で再生されます。

  3. タグを書き、戻り道を残す

    標準の ReplayGain タグと undo タグを書き込みます。ファイルは一時ファイルに書いてから置き換えるので、途中で失敗しても元のファイルは壊れません。mp3rgain -u で元のゲインに戻せます。

アルバムゲインを適用し、元に戻す
$ mp3rgain -a *.mp3
mp3rgain Analyzing album gain for 3 file(s)
  Target: 89 dB (ReplayGain 1.0)
  ...
  Album gain:     -3.0 dB (-2 steps)
  Album peak:     0.7289

  v 01-intro.mp3 (308 frames, -3.0 dB)
  v 02-title.mp3 (308 frames, -3.0 dB)
  v 03-outro.mp3 (308 frames, -3.0 dB)

$ mp3rgain -u 01-intro.mp3
mp3rgain Undoing gain changes on 1 file(s)

  v 01-intro.mp3 (308 frames restored)

仕組みの詳しい解説(英語)→

なぜ後継が必要か

mp3gain と aacgain の開発は止まっています。
必要性は変わりません。

mp3gain は 1.6.2 以降リリースがなく、配布されている Windows 版はセキュリティ修正より前のものです。aacgain の最後のリリースは 2019 年です。現在主流の ReplayGain ツールはタグを書くだけで、多くの機器はそのタグを無視します。再エンコードは、行うたびに音質が落ちます。mp3rgain は同じ無劣化の方法を、両方の形式に対して、メンテナンスを続けながら提供します。

ツール状況ファイル自体を無劣化で変更形式元に戻す動作環境
mp3rgain開発継続中できるMP3、AAC / M4AできるWindows、macOS、Linux。CLI と GUI
mp3gain1.6.2 以降リリースなしできるMP3できるWindows 版は未修正。Debian / Ubuntu のパッケージは修正済み
aacgain最終リリースは 2019 年できるMP3、AAC / M4AできるWindows 版のみ配布。他はソースからビルド
foobar2000開発継続中できる(オプション)MP3、AAC(タグは多数の形式)書き込み後は不可Windows の GUI
rsgain、loudgainrsgain は継続中できない(タグのみ)多数不要各 OS の CLI
ffmpeg loudnorm開発継続中できない(再エンコード)ほぼすべてできない各 OS の CLI
特長

従来のツールができたことと、できなかったこと

無劣化

書き換えるのは各フレームのゲイン値だけです。圧縮された音声をデコードして再圧縮することはありません。MP3、M4A / MP4 内の AAC、生の ADTS .aac に対応します。

元に戻せる

変更はすべて undo タグに記録されます。mp3rgain -u で、MP3 でも AAC でも元のゲインに戻せます。

mp3gain 互換

オプション、TSV 出力、MP3GAIN_UNDO タグが同じなので、スクリプトや beets の設定がそのまま動きます。

ReplayGain 1.0 / 2.0 / R128

既定は mp3gain と同じ値になる ReplayGain 1.0。--rg2 と --r128 で BS.1770 のラウドネス測定に切り替えられます。

タグも書く、タグだけも可

ゲインの書き込みと同時に標準の REPLAYGAIN_* タグを書きます。--tags-only なら音声には触れません。

メモリ安全

Rust 製で、自身のコードに unsafe ブロックはありません。mp3gain と aacgain の CVE の原因になった C のコードは含みません。

単体で動く

ffmpeg もランタイムも不要です。デコードは内蔵の Rust 製ライブラリ Symphonia で行います。

ライブラリ全体を一括処理

フォルダの再帰処理、フォルダ単位やリリース単位のアルバム分け、全 CPU コアでの並列処理、JSON 出力に対応します。

デスクトップアプリ

mp3rgui: ターミナルは不要です

Windows の MP3Gain を使っていた方なら、同じ流れで使えます。ファイルを追加し、解析し、適用するだけです。

  • ファイルやフォルダをドラッグ&ドロップ(サブフォルダも対象)
  • 全 CPU コアを使うトラック解析とアルバム解析。途中でキャンセル可能
  • クリッピング防止は既定でオン。メニューから元に戻せます
  • 日本語を含む 7 言語に対応
アルバム解析を終えた mp3rgui の画面。4 つの MP3 ファイルについて、音量、クリッピング、トラックゲイン、アルバムゲインが表示されている
向き不向き

mp3rgain が向いている場合
他のツールが向いている場合

mp3rgain は販売を目的としない小さな無料ツールです。合う場面と、他のツールのほうがよい場面を率直に書きます。

mp3rgain が向いている場合

  • 現在の Windows、macOS、Linux で使える mp3gain や aacgain を探している
  • プレーヤーやカーステレオ、スピーカーが ReplayGain タグを無視する
  • M4A や AAC のファイルを、無劣化のまま調整したい
  • スクリプトや Docker、cron で自動化し、あとで元に戻せるようにしたい

他のツールが向いている場合

  • FLAC、Opus、Ogg、WAV を扱う。または使うプレーヤーがすべて ReplayGain タグに対応している: rsgain
  • Windows のデスクトップで、基準となる ReplayGain スキャナーを使いたい: foobar2000
  • 納品用に正確なラウドネス値が必要で、再エンコードしてもよい: ffmpeg の loudnorm
  • rekordbox と CDJ 用に DJ ライブラリを準備する: Bake'n Deck
DJ の方へ

Bake'n Deck

CDJ などの DJ 機器は ReplayGain タグを無視し、rekordbox の Auto Gain は USB メモリに書き出されません。Bake'n Deck は同じ作者による rekordbox → CDJ 向けの準備ツールで、MP3 / AAC の処理エンジンとして mp3rgain を内蔵しています。準備した内容をファイルそのものに書き込みます。

  • Headroom. ゲインのみ、リミッターなし。各トラックを −0.5 dBTP のトゥルーピーク上限まで上げ下げします。MP3、AAC、FLAC、AIFF、WAV、ALAC に対応し、キューとビートグリッドは保たれます。
  • Sort. 書き出した rekordbox XML 内の全プレイリストを、キー、BPM の順に並べ替えます。
  • CDJ Safe. プレイリストを 320 kbps CBR の MP3 に変換し、キューとビートグリッドを引き継ぎます。
  • macOS、Windows、Linux 用の無料 CLI(MIT ライセンス)と、Mac 用のネイティブアプリがあります。
よくある質問

よく聞かれる質問と答え

再エンコードせずに、どうやって音量を変えるのですか?

MP3 と AAC の各フレームには、デコーダーが出力をどれだけの大きさで再生するかを決める global_gain という値が入っています。mp3rgain はこの値だけを書き換えます(1 ステップ = 1.5 dB)。圧縮された音声データそのものには触れないので音質は変わらず、変更後の音量はどのプレーヤーや機器でもそのまま再生されます。

mp3gain の代わりにそのまま使えますか?

ほとんどの場合は使えます。コマンドラインのオプション、TSV 出力、MP3 の undo タグ (MP3GAIN_UNDO) は mp3gain と互換なので、既存のスクリプトや beets の設定はコマンド名を置き換えるだけで動きます。mp3gain が処理したファイルを mp3rgain で元に戻すこともできます。意図的に変えている点は 2 つあります。既定では毎回解析し直すこと(保存済みタグを使うには -s R)、そして MP3 の ReplayGain タグを ID3v2 に書くこと(mp3gain と同じ APEv2 にするには -s a)です。

mp3gain は安全ですか? mp3rgain のほうが安全ですか?

入手元によります。mp3gain 1.6.2 と同梱コードには 21 件の CVE が公開されており、大半は細工されたファイルで起こるメモリ破壊です。Debian と Ubuntu のパッケージは修正済みですが、SourceForge の Windows 版と Chocolatey のパッケージは未修正で、修正を含む公式リリースは出ていません。mp3rgain は mp3gain や aacgain のコードを一切共有しない Rust 製の別実装で、自身のコードに unsafe ブロックはなく、デコードには Rust 製の Symphonia を使うため、この種の不具合は構造的に持ち込まれません。ただしこれは設計上の説明であり、バグがないという保証ではありません。詳しくは mp3gain は安全か をご覧ください。

Windows 11 や Mac で使える mp3gain はありますか?

mp3rgain がそれにあたります。デスクトップアプリの mp3rgui は Windows 10 / 11(x64 と ARM64)、macOS 11 以降(Apple シリコンと Intel)、Linux で動き、ファイルを追加して「トラック解析」または「アルバム解析」を実行し、「トラックゲイン」または「アルバムゲイン」を適用するという、従来の MP3Gain と同じ流れで使えます。Windows は インストーラー、macOS は brew install --cask M-Igashi/tap/mp3rgui で入ります。使い方は デスクトップアプリのページ にあります。

変更を元に戻せますか?

はい。適用したゲインは undo タグ(MP3 では mp3gain と同じ MP3GAIN_UNDO、AAC では mp3rgain_undo)に記録され、mp3rgain -u(アプリでは「ゲイン変更」メニューの「すべて元に戻す」)で各フレームの値を元に戻せます。音声は完全に元に戻り、もともと ID3v2 タグがなかったファイルはバイト単位で元と一致します(3.16.2 以降)。ID3v2 タグがあった MP3 は、そのタグが ID3v2.4 として書き直された状態で残ります。ゲインの値が 0 または 255 の限界に達したフレームは正確には戻せず、その場合は警告が出ます。

AAC や M4A にも使えますか? aacgain の代わりになりますか?

はい。M4A / MP4 に入った AAC と、生の ADTS (.aac) を、MP3 と同じ方法で無劣化のまま調整でき、元に戻すこともできます。aacgain は 2019 年 12 月の 2.0.0 が最後のリリースで、最後のコミットは 2022 年 7 月です。私たちの知る限り、AAC の音量を無劣化で調整できるコマンドラインツールのうち、現在もメンテナンスされているのは mp3rgain だけです。HE-AAC、ALAC、DRM 保護された M4P は対象外で、スキップされます。

よくある質問をすべて見る(14 件)→