FFmpegを使うと、講義の録画、ポッドキャスト動画、ミュージックビデオ、画面録画などのMP4から音声だけを取り出し、MP3として保存できます。MP3は、スマホ・カーステレオ・音楽アプリなど、ほぼどこでも再生できます。MP4をMP3に変換するときは、VBRかCBRか、ビットレート、切り出す区間を指定できます。

1. 基本のコマンド

MP4から音声を抽出し、高品質なMP3にエンコードします。

ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
  • -vn … 映像なし。映像ストリームを破棄し、音声だけを処理する
  • -c:a libmp3lame … 標準的な高品質MP3エンコーダLAMEでエンコード
  • -q:a 2 … VBR品質レベル2(平均約190kbps、優れた品質)

これがほとんどの人におすすめの既定です。

固定ビットレートが良い場合

ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3

-b:a 192k は一定の192kbps(CBR)を設定します。プレーヤーやサービスが予測可能なビットレートを要求する場合に使います。

2. VBRとCBR:どちらを使うべき?

MP3の品質を制御する方法は2つあります。

モード オプション 動作 向いている用途
VBR(可変) -q:a 0〜9 音が複雑な部分にビットを多く割く 容量あたりの品質が最良・汎用
CBR(固定) -b:a 128k、192k、320k 全体で固定ビットレート 厳密な互換性・配信・容量の予測

基本はVBR(-q:a)を使います。 ビットを効率よく配分するため、より小さい平均ファイルサイズでより良い品質が得られます。CBRは、後続の処理が固定ビットレートを明確に要求する場合だけ使います。

VBRの尺度は逆向きで、数値が小さいほど高品質です。

-q:a の値 平均ビットレートの目安 品質
0 約245kbps VBR最高品質
2 約190kbps 優秀(推奨)
4 約165kbps 非常に良い
6 約115kbps 良い・小容量

3. ビットレートと品質の早見表

CBR(-b:a)は内容に応じて選びます。

ビットレート 品質 向いている用途
320k MP3の最高品質 残したい音楽
192k 多くの人は聞き分けられない 一般的な音楽・動画音声
128k 良い ポッドキャスト・気軽な音楽
96k 許容範囲 音声のみ・オーディオブック
64k 低い 長尺の音声録音・容量節約

講義やポッドキャストなどの音声中心コンテンツは96k〜128kで十分です。音楽は192kまたはVBR -q:a 2 が最適で、320kが上限です。

4. なぜ -vn が重要か

MP3ファイルには映像トラックを入れられないため、-vn がなくても、FFmpegはMP4の映像を出力に入れません。MP4にカバー画像が埋め込まれていれば、その画像だけがPNGに変換されてMP3に入ります。-vn(映像なし)を付けると、FFmpegはカバー画像も含めて映像を無視し、音声だけを処理します。音声だけのMP3にしたいときに付けてください。

MP4に複数の音声トラック(例:言語違い)があり、特定の1つが欲しい場合はインデックスで選択します。

ffmpeg -i input.mp4 -vn -map 0:a:1 -c:a libmp3lame -q:a 2 output.mp3

-map 0:a:1 は2番目の音声トラックを選びます(番号は0から始まります)。欲しいトラックに合わせてインデックスを調整してください。

5. トリミング:区間だけを切り出す

音声の一部だけ(例:1分30秒から90秒のクリップ)を取り出すには:

ffmpeg -ss 00:01:30 -t 00:01:30 -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
  • -ss 00:01:30 … 1分30秒から開始
  • -t 00:01:30 … その地点から90秒分の音声を取得

長さの代わりに終了時刻を指定するには -to を使います。

ffmpeg -ss 00:01:30 -to 00:03:00 -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3

これは1:30から3:00までの音声を抽出します。

6. モノラル出力とサンプルレート

音声録音なら、モノラルにしてVBR -q:a 5 を使うとファイルが小さくなり、聴感上の劣化もありません。

ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 5 -ac 1 -ar 44100 output.mp3
  • -ac 1 … モノラルにダウンミックス(講義やボイスメモに最適)
  • -ar 44100 … サンプルレートを44.1kHzに設定(MP3で最も一般的なレート)

音楽は -ac 1 を付けず、ステレオのままにします。-ac を付けなければ、MP3は元のチャンネル数を保ち、5.1chの音声はステレオにまとめられます。一般的な視聴で44.1kHz未満に下げる理由はありません。

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

エラー1: Unknown encoder 'libmp3lame'

原因: お使いのFFmpegビルドがLAMEなしでコンパイルされている。 解決策: フルビルドを導入する(Windowsなら、ffmpeg.orgのダウンロードページからリンクされている gyan.dev のフルビルドなど。大半のLinuxパッケージにもLAMEが含まれます)。-c:a libmp3lame を明示的に指定するのがおすすめです。-c:a mp3 は利用可能なMP3エンコーダ(通常のビルドではlibmp3lame)に割り当てられる別名にすぎず、別個の低品質エンコーダではありません。

エラー2: 出力が無音

原因: -map で無音のトラック(空の追加トラックなど)を選んだ、または元のMP4の音声そのものが無音。存在しないトラックを選んだ場合や、MP4に音声がない場合は、無音のファイルはできず、matches no streams や Output file does not contain any stream などのエラーで止まる。 解決策: ffprobe input.mp4 で音声ストリームの一覧を確認し、-map オプションを外すか修正する。

エラー3: ファイルが予想よりずっと大きい

原因: 320kなど高いCBRビットレートを使った。 解決策: VBR -q:a 2 に切り替えるか、CBRを192kに下げる。

エラー4: プレーヤーにタイトル/アーティストが表示されない

原因: MP4のタグはMP3のID3タグに必ずしもきれいに対応しない。 解決策: メタデータを明示的に付ける。例:-metadata title="My Track" -metadata artist="Name"。

よくある質問

Q1. MP4の音声をMP3に変換すると品質は落ちますか。 A. わずかに落ちます。MP4の音声(通常AAC)をデコードしてMP3に再エンコードするため、非可逆です。-q:a 2 や192k以上では大半の人に聞き分けられません。

Q2. VBRとCBRのどちらを使うべきですか。 A. 容量対品質が最良のVBR(-q:a 2)です。CBR(-b:a)は、プレーヤーやアップロード先が固定ビットレートを要求する場合だけにします。

Q3. ポッドキャストに最適なビットレートは。 A. 音声なら96k〜128kのCBR、またはVBR -q:a 5 で十分です。VBRなら、モノラル(-ac 1)にするとさらに小さくなります。CBRではビットレートだけでサイズが決まるため、小さくするにはビットレートを下げます。

Q4. MP3ではなく元のAAC音声を残せますか。 A. MP3が特に必要でなければ、-c:a copy でM4Aに抽出すると無劣化で、一瞬で終わります。ただしMP3の方が対応機器は広いです。

Q5. 動画の一部分だけ音声抽出するには。 A. 第5節のとおり、開始に -ss、長さに -t、終了時刻に -to を使います。

Q6. libmp3lame と mp3 のどちらを指定すべきですか。 A. LAMEは入手できる中で最も成熟した最高品質のMP3エンコーダで、-c:a libmp3lame と書けば意図が明確になります。-c:a mp3 はビルドが提供するMP3エンコーダ(通常のビルドではlibmp3lame)に解決される別名にすぎず、別個の低品質エンコーダではありません。libmp3lame を直接指定するのがおすすめです。

関連記事