MP4から音声だけを取り出してMP3として保存する——講義の録画、ポッドキャスト動画、ミュージックビデオ、画面録画など——これはFFmpegの定番作業のひとつです。MP3は万能で、世界中のスマホ・カーステレオ・音楽アプリで再生できます。本記事では、FFmpegでMP4をMP3に変換するきれいな方法、VBRとCBRの選び方、ビットレートの選択、必要な部分だけを切り出す方法を解説します。
動作確認: FFmpeg 8.1
この記事でわかること
- どんなMP4からもMP3を抽出する1つのコマンド
- VBR(
-q:a)とCBR(-b:a):どちらを使うか - ビットレートと品質の早見表
- なぜ
-vnが重要か(映像ストリームを捨てる) - 区間だけを切り出すトリミング
- モノラル出力とサンプルレートの制御
- トラブルシューティング
- よくある質問
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 が重要か
-vn がないと、FFmpegは映像ストリームも引き連れようとする場合があります。MP3ファイルには無意味で、エラーや無駄な処理の原因になります。-vn(映像なし)はFFmpegに映像を完全に無視させ、音声だけを処理させます。MP4から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. モノラル出力とサンプルレート
音声録音では、モノラルと低めのサンプルレートでファイルサイズが半減し、しかも音声では聴感上の劣化がありません。
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 2、既定)のままにします。一般的な視聴で44.1kHz未満に下げる理由はありません。
7. トラブルシューティング
エラー1: Unknown encoder 'libmp3lame'
原因: お使いのFFmpegビルドがLAMEなしでコンパイルされている。
解決策: フルビルドを導入する(公式Windowsビルドや大半のLinuxパッケージにLAMEが含まれます)。-c:a libmp3lame を明示的に指定するのがおすすめです。-c:a mp3 は利用可能なMP3エンコーダ(通常のビルドではlibmp3lame)に割り当てられる別名にすぎず、別個の低品質エンコーダではありません。
エラー2: 出力が無音
原因: 存在しない/誤った音声トラックを選んだ、または元のMP4に音声がない。
解決策: ffprobe input.mp4 で音声ストリームの有無を確認し、-map オプションを外すか修正する。
エラー3: 切り出したクリップの先頭が少し遅れる
原因: -ss を -i の前に置くとFFmpegは最寄りの点へ効率的にシークします。再エンコードのサンプル精度カットでは通常これで問題ありません。
解決策: 厳密なタイミングが必要なら -ss を -i の後に置きます(遅いが正確)。
ffmpeg -i input.mp4 -ss 00:01:30 -t 00:01:30 -vn -c:a libmp3lame -q:a 2 output.mp3
エラー4: ファイルが予想よりずっと大きい
原因: 320kなど高いCBRビットレートを使った。
解決策: VBR -q:a 2 に切り替えるか、CBRを192kに下げる。
エラー5: プレーヤーにタイトル/アーティストが表示されない
原因: 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 で十分です。モノラル(-ac 1)でさらに半減します。
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 を直接指定する習慣がおすすめです。
関連記事
Tested with FFmpeg 8.1 — verified with our command-check script 一次ソース: ffmpeg.org/ffmpeg.html / ffmpeg.org/ffmpeg-codecs.html