.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

関連記事