Skip to content

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 kbps
  • output.mp3:輸出檔案

2. 無損擷取 AAC

bash
# 如果 MP4 用 AAC,無損擷取(最快、無品質損失)
ffmpeg -i input.mp4 -vn -c:a copy output.aac

3. 轉成 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 MBPodcast
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.mp3

VBR 模式參考:

-q:a 值平均位元率音質
0245 kbps最高
2170 kbps高(推薦)
4165 kbps
6115 kbps
965 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.mp3

2. 多音軌 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.mp3

3. 音量標準化

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.mp3

4. 立體聲轉單聲道

bash
# 立體聲轉單聲道(省一半空間)
ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 96k -ac 1 output.mp3

5. 採樣率變更

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.mp3

ID3 標籤管理

加入 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.mp3

Podcast 製作(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 迴圈

參考資料

Last updated: