.m4a は、iTunesのダウンロードやボイスメモ、多くのポッドキャストで標準の音声形式です。それでも、古いカーステレオや一部のDJソフト、アップロード先によっては、今も .mp3 しか受け付けません。FFmpegなら、M4Aを1コマンドでMP3に変換できます。ただし、変換は必ず再エンコード(音声をいったん展開して圧縮し直すこと)になります。ビットレートの設定しだいで、元と聴き分けられない音にも、はっきり劣化した音にもなります。
1. M4A→MP3は必ず再エンコードになる
.m4a の中の音声は、通常は AAC(ロッシー)、ときどき ALAC(Apple Lossless)です。ロッシーは圧縮で音の一部を捨てる方式、ロスレスは元の音を完全に残す方式です。MP3はまったく別のコーデック(圧縮方式)なので、FFmpegは元の音声をデコードしてからMP3として圧縮し直します。劣化なしで「コピー」する方法はありません。
- AAC(ロッシー)→ MP3(ロッシー): 一度削った音を、もう一度削ることになります。音質は下がる一方で、上がることはありません。劣化が聴き取れないよう、ビットレートに余裕を持たせます。
- ALAC(ロスレス)→ MP3(ロッシー): CDの取り込みと同じく、きれいな音源からの普通の変換です。
どちらの場合も、余裕のある設定を選びます(第4章)。
2. 基本の変換
よく使うのは、192 kbpsの固定ビットレートでMP3にするコマンドです。
ffmpeg -i input.m4a -c:a libmp3lame -b:a 192k output.mp3
-c:a libmp3lame… MP3エンコーダのLAMEを使う。FFmpegで推奨される高品質なエンコーダ-b:a 192k… 192 kbpsの固定ビットレート(CBR)。音楽なら無難で、互換性も高い値
変換はすぐ終わり、どのMP3プレーヤーでも再生できるファイルになります。
3. 可変ビットレート(VBR)— 容量あたりの音質が良い
VBRは、複雑な部分に多くのデータを、単純な部分に少ないデータを割り当てる方式です。そのため、CBRより平均サイズが小さくても、音質が良くなることがよくあります。LAMEでは -q:a でVBRの品質を指定します。数値が小さいほど高音質です。
ffmpeg -i input.m4a -c:a libmp3lame -q:a 2 output.mp3
-q:a 2 は平均およそ190 kbpsで、音楽なら元とほぼ聴き分けられないとされています。普段使いには、この -q:a 2 がいちばんのおすすめです。
4. ビットレート・VBRレベルの選び方
| 設定 | モード | おおよそのビットレート | 適した用途 |
|---|---|---|---|
-q:a 0 |
VBR | 約245 kbps | アーカイブ、シビアな試聴 |
-q:a 2 |
VBR | 約190 kbps | 音楽・汎用(推奨) |
-q:a 4 |
VBR | 約165 kbps | 気軽な試聴、小さめのファイル |
-b:a 320k |
CBR | 320 kbps | MP3最高音質、固定サイズ |
-b:a 192k |
CBR | 192 kbps | 無難・互換性が高い |
-b:a 128k |
CBR | 128 kbps | 音声・ポッドキャスト、小サイズ |
-b:a 96k |
CBR | 96 kbps | 話し声のみ、最小サイズ |
元がロッシーなので、高音質側(-q:a 2 や -b:a 256k など)に寄せると、二重圧縮の劣化が目立たなくなります。音楽なら、128 kbps未満にする意味はほとんどありません。
5. メタデータとカバーアートの保持
タイトル・アーティスト・アルバムなどの一般的なタグは、何も指定しなくても、FFmpegが可能な範囲でコピーします。埋め込みのカバー画像も既定で引き継がれますが、PNGに変換されます。元の画像をそのまま持ち込むには、次のようにストリームを明示的に指定します。
ffmpeg -i input.m4a -map 0:a -map "0:v?" -c:a libmp3lame -q:a 2 -c:v copy -id3v2_version 3 output.mp3
-map 0:a… 音声を出力に入れる-map "0:v?"… カバー画像があれば入れる(?を付けると、画像のないファイルでもエラーにならない。引用符は、macOS の標準シェル zsh が?をワイルドカードとして扱うのを防ぐ)-c:v copy… カバー画像を再エンコードせず、そのまま使う-id3v2_version 3… タグをID3v2.3(MP3のタグ規格で、最も互換性が高い版)で書き込む
6. チャンネルとサンプルレート
話し声だけなら、モノラルにしてビットレートを下げると、ファイルを小さくできます。
ffmpeg -i input.m4a -c:a libmp3lame -b:a 96k -ac 1 output.mp3
-ac 1… 1チャンネル(モノラル)にまとめる
古いプレーヤーには、48 kHzのMP3を苦手とするものがあります。サンプルレート(1秒間に音を記録する回数)を標準の44.1 kHzにそろえるには、次のようにします。
ffmpeg -i input.m4a -c:a libmp3lame -q:a 2 -ar 44100 output.mp3
7. トラブルシューティング
エラー1: Unknown encoder 'libmp3lame'
原因: 使っているFFmpegに、LAMEが組み込まれていません。
解決策: LAMEを含むビルドを使います(Windowsなら、ffmpeg.orgのダウンロードページからリンクされている gyan.dev のフルビルド、Linuxなら libmp3lame を含むディストリビューションのパッケージなど)。主要なビルドには、たいてい入っています。
エラー2: MP3がこもって聞こえる・「ゆらぐ」
原因: 元のAACがすでにロッシーなのに、ビットレートが低すぎます(二重圧縮による劣化)。
解決策: -q:a 2 か -b:a 256k に上げます。
エラー3: MP3にカバーアートがない
原因: -vn を付けたり、-map 0:a だけを指定したりすると、カバー画像は出力に入りません。
解決策: -vn を外し、第5章のように -map "0:v?" と -c:v copy を付けます。
エラー4: プレーヤーのタグが間違っている・文字化けする
原因: プレーヤーが古い版のID3しか読めません。
解決策: -id3v2_version 3 を付けて、互換性の高いID3v2.3で書き込みます。
よくある質問
Q1. M4AをMP3に変換すると音質は落ちますか?
A. ある程度は落ちます。M4AのAACもMP3もロッシーなので、圧縮を2回重ねることになるからです。高音質の設定(-q:a 2、またはそれより小さい値)にして、劣化を聴き取れない程度に抑えてください。
Q2. 無劣化でM4AをMP3に変換できますか? A. できません。AACやALACからMP3へは、必ず再エンコードになります。M4AがALAC(ロスレス)なら、少なくとも劣化のない音源から変換できます。
Q3. CBRとVBRのどちらを使えばいいですか?
A. 一般に、VBR(-q:a 2)のほうが同じ容量で音質が良くなります。ツールや機器が固定ビットレートを求める場合は、CBR(-b:a 192k)を使います。
Q4. 音楽なら、どのくらいのビットレートで十分ですか?
A. 192 kbpsのCBRか、VBRの -q:a 2 なら、ほとんどの人は元とほぼ聴き分けられません。MP3の実用上の上限は320 kbpsです。
Q5. フォルダ内のM4Aをまとめて変換するには? A. シェル(bashなど)で、次のループを実行します。
for f in *.m4a; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f%.m4a}.mp3"; done