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 を直接指定するのがおすすめです。