mp3rgain のよくある質問

更新 · mp3rgain v3.16.2

無劣化での音量調整の仕組み、元に戻せる範囲、対応形式、mp3gain との関係など、よく聞かれる質問への答えです。より細かい内容は 英語版の FAQ にあります。

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

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 で入ります。使い方は デスクトップアプリのページ にあります。

無料ですか?

はい。mp3rgain と mp3rgui は MIT ライセンスのオープンソースソフトで、無料です。広告もアカウント登録もなく、アプリはネットワーク通信を行いません。ソースコードとすべてのリリースは GitHub で公開しています。

日本語で使えますか?

デスクトップアプリの mp3rgui は日本語に対応しています。システムの言語に従って表示され、「言語」メニューから切り替えることもできます。コマンドライン版の mp3rgain は英語のままです(スクリプトや mp3gain 用のフロントエンドが出力を読み取るためです)。日本語のファイル名は、システムに入っている日本語フォントで表示されます。

トラックゲインとアルバムゲインの違いは何ですか?

トラックゲインは 1 曲ごとに補正量を決めるので、どの曲も基準の音量になります。プレイリストやシャッフル再生に向いています。アルバムゲインはアルバム全体で 1 つの補正量を決めて全曲に同じだけ適用するので、静かな曲は静かなまま、というアルバム内の音量差が保たれます。デスクトップアプリは既定でフォルダごとに 1 アルバムとして扱います。コマンドラインの -a は、mp3gain と同じく指定したファイル全部を 1 アルバムとして扱います。

変更を元に戻せますか?

はい。適用したゲインは 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 は対象外で、スキップされます。

FLAC、Opus、WAV には使えますか?

使えません。mp3rgain が扱うのは MP3 と AAC だけです。FLAC や Ogg (Vorbis、Opus)、WAV には、ReplayGain タグを書き込む rsgain のようなツールが適しています。

ReplayGain タグを書くだけのツール(rsgain など)とは何が違いますか?

タグだけのツールは「この曲は何 dB 下げて再生する」という情報をタグに書き、実際の調整はプレーヤーに任せます。カーステレオや携帯プレーヤー、スマートスピーカーなど、タグを無視する機器では効果がありません。mp3rgain は同じ解析をしたうえで、補正をファイル自体に書き込み、さらに標準の ReplayGain タグも書きます。タグを読むプレーヤーでも読まないプレーヤーでも同じ音量になります。音声を変えずにタグだけ書きたい場合は --tags-only を使います。

音量はぴったり目標値になりますか?

いいえ。無劣化の調整は 1.5 dB 刻みなので、音声は目標から約 0.75 dB 以内に収まります。残りの差は ReplayGain タグに書かれるので、タグを読むプレーヤーでは正確な目標値になります。音声そのものを正確な値に合わせる必要がある場合は、再エンコードを伴う ffmpeg の loudnorm が適しています。

ダウンロードできない、または警告が出ます。

Windows 用インストーラーのリンク (https://mp3rgain.tyna.ninja/download/windows) は GitHub Releases 上のファイルに転送されるので、github.com に接続できないネットワークではダウンロードできません。また、インストーラーにはコード署名がないため、ブラウザーが「一般的にダウンロードされていないファイル」として保留したり、初回起動時に SmartScreen が警告を出したりすることがあります。ファイルを保持して実行すれば使えます。同じファイルとそのチェックサムは 最新リリースのページ にあり、winget install M-Igashi.mp3rgui ならブラウザーを使わずに入れられます。

rekordbox や CDJ で使う DJ 用の曲にも使えますか?

MP3 と AAC であれば使えます。CDJ などの DJ 機器は ReplayGain タグを無視しますが、global_gain に書き込まれた変更はそのまま再生されるからです。ただし DJ ライブラリ全体の準備には、同じ作者の Bake'n Deck のほうが向いています。mp3rgain を内蔵し、各トラックを −0.5 dBTP のトゥルーピーク上限まで上げ下げします(ゲインのみ、リミッターなし)。FLAC、AIFF、WAV、ALAC にも対応し、rekordbox のキューとビートグリッドはそのまま保たれます。

次に読む

ここにない質問は、GitHub の Issue でお知らせください。