iTunesやApple Musicのダウンロード、ボイスメモ、多くのポッドキャストで標準となっている .m4a ファイルは、どこでも再生できるわけではありません。古いカーステレオ、一部のDJソフト、特定のアップロードフォームは今も素の .mp3 を求めます。FFmpegなら1コマンドでM4AをMP3に変換できますが、重要な注意点があります。M4Aは通常AACなので多くの場合ロッシー→ロッシーの再エンコードになります(ALACならロスレス→ロッシーです)。いずれにせよ再エンコードは避けられないため、ビットレートと音質設定を理解しているかどうかが、聴き分けられない変換になるか、明らかに劣化した変換になるかの分かれ目です。所要時間:5分。

動作確認: FFmpeg 8.1


この記事でわかること

  1. M4A→MP3が必ず再エンコードになる理由(とその代償)
  2. 固定ビットレートでの基本変換
  3. サイズと音質に優れた可変ビットレート(VBR)
  4. ビットレート・VBR品質レベルの選び方
  5. メタデータとカバーアートの保持
  6. モノラル・サンプルレート・チャンネルの調整
  7. トラブルシューティングとFAQ

1. M4A→MP3は必ず再エンコードになる

.m4a コンテナは通常 AAC 音声(ロッシー)を、ときに ALAC(Apple Lossless)を格納します。MP3はまったく別のコーデックなので、FFmpegはソースをデコードしてMP3として再圧縮する必要があり、これらの形式間にロスレスな「コピー」経路は存在しません。

つまり:

  • AAC(ロッシー)→ MP3(ロッシー): 1世代目のロッシーの上に2世代目を重ねることになります。音質は下がる一方で、上がることはありません。劣化を聴き取れないよう余裕のあるビットレートを使いましょう。
  • ALAC(ロスレス)→ MP3(ロッシー): CDリッピングのように、きれいなソースからの通常のロッシーエンコードです。

いずれの場合も、余裕を残した設定を選びます(第4章)。


2. 基本の変換

最も一般的なコマンド — 固定192 kbpsのMP3:

ffmpeg -i input.m4a -c:a libmp3lame -b:a 192k output.mp3
  • -c:a libmp3lame … LAME MP3エンコーダ。FFmpegで推奨される高品質MP3エンコーダ。
  • -b:a 192k … 192 kbpsの固定ビットレート(CBR的)。音楽向けの安全で互換性の高い既定値。

すぐ完了し、すべてのMP3プレーヤーが受け付けるファイルになります。


3. 可変ビットレート(VBR)— 容量あたりの音質が良い

VBRは複雑な箇所に多くのビットを、単純な箇所に少ないビットを割り当てるため、CBRより平均サイズが小さくても音質が良くなることが多い方式です。LAMEではVBRを -q:a で制御します(数値が小さいほど高音質)。

ffmpeg -i input.m4a -c:a libmp3lame -q:a 2 output.mp3

-q:a 2 は平均およそ190 kbpsを狙い、音楽ではほぼ聴き分けられない(near-transparent)とされています。多くの人にとってVBR -q:a 2 が最良の汎用設定です。


4. ビットレート・VBRレベルの選び方

用途に応じて次の表から設定を選んでください。

設定モードおおよそのビットレート適した用途
-q:a 0VBR約245 kbpsアーカイブ、シビアな試聴
-q:a 2VBR約190 kbps音楽・汎用(推奨)
-q:a 4VBR約165 kbps気軽な試聴、小さめのファイル
-b:a 320kCBR320 kbpsMP3最高音質、固定サイズ
-b:a 192kCBR192 kbps安全・互換性の高い既定
-b:a 128kCBR128 kbps音声・ポッドキャスト、小サイズ
-b:a 96kCBR96 kbps話し声のみ、最小サイズ

ロッシーなソースから再エンコードするため、高音質側(例:-q:a 2-b:a 256k)に寄せると二重圧縮を目立たなくできます。音楽で128 kbpsを下回る価値はめったにありません。


5. メタデータとカバーアートの保持

FFmpegは既定で、対応可能ならタイトル・アーティスト・アルバムなどの一般的なタグをコピーします。明示的に指定し、埋め込みカバー画像も持ち込むには:

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? … カバー画像があれば取得(? で任意指定にし、画像がないファイルでもエラーにしない)。
  • -c:v copy … カバー画像を再エンコードせず保持。
  • -id3v2_version 3 … 最も互換性の高いID3v2.3タグを書き込む。

6. チャンネルとサンプルレート

話し声コンテンツなら、モノラル化とビットレート低下でファイルを小さくできます。

ffmpeg -i input.m4a -c:a libmp3lame -b:a 96k -ac 1 output.mp3
  • -ac 1 … 1チャンネル(モノラル)にダウンミックス。

標準の44.1 kHzサンプルレートを強制するには(48 kHzのMP3を嫌う古いプレーヤー向け):

ffmpeg -i input.m4a -c:a libmp3lame -q:a 2 -ar 44100 output.mp3

7. トラブルシューティング

エラー1: Unknown encoder 'libmp3lame'

原因: お使いのFFmpegがLAMEなしでビルドされている。 解決策: 公式のフルビルド(Windowsならgyan.dev、libmp3lame を含むディストリのパッケージなど)を使う。主要なビルドはたいてい含んでいます。

エラー2: MP3がこもって聞こえる・「ゆらぐ」

原因: すでにロッシーなAACソースに対してビットレートが低すぎる(二重圧縮アーティファクト)。 解決策: 音質を上げる。-q:a 2 または -b:a 256k を使う。

エラー3: MP3にカバーアートがない

原因: 既定のマッピングで添付画像が落ちた。 解決策: 第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 で、ほとんどの人にはほぼ聴き分けられません。320 kbpsがMP3の実用的な上限です。

Q5. フォルダ内のM4Aを一括変換するには? A. シェルでループします:

for f in *.m4a; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f%.m4a}.mp3"; done

関連記事


Tested with FFmpeg 8.1 — verified with our command-check script 一次ソース: ffmpeg.org/ffmpeg.html / trac.ffmpeg.org/wiki/Encode/MP3