MP4 轉 MP3 教學:FFmpeg 音訊擷取與位元率指南
想從音樂 MV、研討會影片或 YouTube 下載的影片中只擷取音訊。FFmpeg 讓這變得簡單,但位元率、ID3 標籤、批次處理等細節要知道。這篇從基本指令到進階技巧完整解說。
為什麼從 MP4 擷取音訊
- 省空間: 只保留音訊可省 90% 以上空間(影片資料佔大部分)
- 車用音響相容: 很多車用音響只支援 MP3/AAC
- Podcast 製作: 從影片擷取音訊做 Podcast
- 鈴聲製作: 從影片擷取片段做鈴聲
- 音樂收藏: 只想聽音樂 MV 的音訊
MP4 音訊編碼器
MP4 是容器格式,可包含多種音訊編碼器:
| 編碼器 | 壓縮 | 相容性 | 位元率範圍 |
|---|---|---|---|
| AAC | 破壞性 | 廣泛(所有現代裝置) | 64-512 kbps |
| MP3 | 破壞性 | 廣泛 | 32-320 kbps |
| AC-3 | 破壞性 | 有限(杜比數位) | 32-640 kbps |
| ALAC | 無損 | Apple 生態 | 400-1000+ kbps |
| FLAC | 無損 | 開源 | 400-1000+ kbps |
大部分 MP4 用 AAC 音訊。擷取時選擇無損複製或轉成 MP3。
基本轉換
1. 轉成 MP3(破壞性壓縮)
bash
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3參數:
-vn:no video,跳過視訊-c:a libmp3lame:MP3 編碼器-b:a 192k:位元率 192 kbpsoutput.mp3:輸出檔案
2. 無損擷取 AAC
bash
# 如果 MP4 用 AAC,無損擷取(最快、無品質損失)
ffmpeg -i input.mp4 -vn -c:a copy output.aac3. 轉成 FLAC(無損)
bash
# 轉成 FLAC 無損格式
ffmpeg -i input.mp4 -vn -c:a flac output.flac位元率選擇指南
MP3 位元率
| 位元率 | 音質 | 檔案大小/分鐘 | 使用場景 |
|---|---|---|---|
| 320 kbps | 最高 | 約 2.4 MB | 音響發燒友 |
| 256 kbps | 高 | 約 1.9 MB | 高品質音樂 |
| 192 kbps | 好 | 約 1.4 MB | 一般使用(推薦) |
| 128 kbps | 中 | 約 1 MB | Podcast |
| 64 kbps | 低 | 約 480 KB | 有聲書 |
| 32 kbps | 最低 | 約 240 KB | 語音備忘錄 |
VBR(可變位元率)模式
bash
# VBR 模式(0=最高,9=最低)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3VBR 模式參考:
| -q:a 值 | 平均位元率 | 音質 |
|---|---|---|
| 0 | 245 kbps | 最高 |
| 2 | 170 kbps | 高(推薦) |
| 4 | 165 kbps | 中 |
| 6 | 115 kbps | 低 |
| 9 | 65 kbps | 最低 |
進階技巧
1. 時間範圍擷取
bash
# 從 30 秒開始擷取 2 分鐘
ffmpeg -ss 00:00:30 -t 00:02:00 -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3
# 從 1:30 擷取到 3:45
ffmpeg -ss 00:01:30 -to 00:03:45 -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp32. 多音軌 MP4
某些 MP4(研討會影片、電影)含多個音軌:
bash
# 確認音軌
ffprobe -i input.mp4 -show_streams -select_streams a
# 擷取第 2 音軌(0 起算)
ffmpeg -i input.mp4 -map 0:a:1 -vn -c:a libmp3lame -b:a 192k output.mp33. 音量標準化
bash
# 音量標準化
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -af "loudnorm=I=-16:TP=-1.5:LRA=11" output.mp3
# 簡單音量調整(2 倍)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -af "volume=2.0" output.mp3
# 簡單音量降低(一半)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -af "volume=0.5" output.mp34. 立體聲轉單聲道
bash
# 立體聲轉單聲道(省一半空間)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 96k -ac 1 output.mp35. 採樣率變更
bash
# 降採樣到 22050 Hz(語音夠用)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 64k -ar 22050 output.mp3
# 升採樣到 48000 Hz(不建議,不會提升音質)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k -ar 48000 output.mp3ID3 標籤管理
加入 ID3 標籤
bash
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k \
-metadata title="歌曲標題" \
-metadata artist="藝人名" \
-metadata album="專輯名" \
-metadata year="2026" \
-metadata track="1/12" \
-metadata genre="Pop" \
output.mp3封面圖片嵌入
bash
# 嵌入封面圖片
ffmpeg -i input.mp4 -i cover.jpg -vn -c:a libmp3lame -b:a 192k \
-map 0:a -map 1:v -c:v mjpeg -disposition:v attached_pic \
-metadata title="歌曲標題" \
-metadata artist="藝人名" \
output.mp3批次轉換
Linux/macOS bash
bash
# 所有 MP4 轉 MP3
for f in *.mp4; do
ffmpeg -i "$f" -vn -c:a libmp3lame -b:a 192k "${f%.mp4}.mp3"
done
# 包含子目錄
find . -name "*.mp4" -exec sh -c '
for f; do
ffmpeg -i "$f" -vn -c:a libmp3lame -b:a 192k "${f%.mp4}.mp3"
done
' _ {} +Windows PowerShell
powershell
# 所有 MP4 轉 MP3
Get-ChildItem *.mp4 | ForEach-Object {
ffmpeg -i $_.FullName -vn -c:a libmp3lame -b:a 192k ($_.BaseName + ".mp3")
}Windows CMD
cmd
# 單行批次轉換
for %f in (*.mp4) do ffmpeg -i "%f" -vn -c:a libmp3lame -b:a 192k "%~nf.mp3"各場景範本
音樂擷取(192 kbps)
bash
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k \
-metadata title="標題" -metadata artist="藝人" \
output.mp3Podcast 製作(128 kbps 單聲道)
bash
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 128k -ac 1 \
-af "loudnorm=I=-16:TP=-1.5:LRA=11" \
output.mp3有聲書(64 kbps 單聲道)
bash
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 64k -ac 1 -ar 22050 \
output.mp3最高音質(320 kbps)
bash
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 320k \
output.mp3常見問題
| 問題 | 原因 | 解決方案 |
|---|---|---|
| 沒聲音 | 音軌不是 AAC | 用 -c:a libmp3lame 重新編碼 |
| 檔案巨大 | 位元率太高 | 降到 192 kbps |
| 音質差 | 位元率太低 | 升到 192 kbps 以上 |
| 音訊不同步 | 來源影片問題 | 加 -async 1 |
| 雜音 | 來源有問題 | 用 -af "highpass=f=20" 過濾 |
總結
把 MP4 轉成 MP3 很簡單,但位元率和用途很重要:
- 基本指令:
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3 - 音樂用: 192-320 kbps
- Podcast: 128 kbps 單聲道
- 有聲書: 64 kbps 單聲道 22050 Hz
- 無損擷取:
-c:a copy(但只能擷取原始編碼器)
快速參考:
- 基本:
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 192k output.mp3 - 推薦位元率: 192 kbps(音樂)、128 kbps(Podcast)
- 無損擷取:
-vn -c:a copy output.aac - 批次: 用 shell 迴圈