Skip to content

音訊格式轉換指南:MP3、AAC、FLAC、OGG、Opus 比較

MP3、AAC、FLAC、OGG、Opus、WAV...音訊格式這麼多,該選哪個?車用音響只支援 MP3,但手機音質好的是 FLAC。這篇比較主要音訊格式的特性、使用場景和 FFmpeg 轉換方法。

音訊格式分類

1. 無壓縮格式

  • WAV:PCM 音訊的無壓縮格式。檔案巨大但相容性廣泛。
  • AIFF:Apple 版的 WAV。

2. 無損壓縮格式

  • FLAC:開源無損壓縮。檔案約為 WAV 的一半。
  • ALAC:Apple 版的 FLAC。
  • APE:Monkey's Audio,壓縮率比 FLAC 高,但解碼慢。

3. 破壞性壓縮格式

  • MP3:最普及的破壞性壓縮。相容性最廣。
  • AAC:MP3 後繼者。同位元率下音質更好。
  • Ogg Vorbis:開源破壞性壓縮。
  • Opus:最新一代。高效率、低延遲。
  • AC-3:杜比數位。DVD/藍光用。

主要格式比較

格式壓縮相容性位元率範圍使用場景
MP3破壞性廣泛32-320 kbps通用音訊
AAC破壞性廣泛64-512 kbps串流、行動
FLAC無損400-1000+ kbps封存、發燒友
ALAC無損Apple 生態400-1000+ kbpsApple 封存
Ogg Vorbis破壞性64-500 kbps遊戲、開源
Opus破壞性增加中6-510 kbps即時通訊、串流
WAV廣泛1411 kbps(CD)母片、剪輯
AC-3破壞性有限32-640 kbpsDVD、藍光

FFmpeg 音訊轉換

MP3 轉換

bash
# WAV 轉 MP3
ffmpeg -i input.wav -c:a libmp3lame -b:a 192k output.mp3

# FLAC 轉 MP3
ffmpeg -i input.flac -c:a libmp3lame -b:a 320k output.mp3

# VBR 模式(推薦)
ffmpeg -i input.wav -c:a libmp3lame -q:a 2 output.mp3

AAC 轉換

bash
# WAV 轉 AAC(M4A 容器)
ffmpeg -i input.wav -c:a aac -b:a 192k output.m4a

# 使用 Fraunhofer FDK AAC(更高品質,但需要特殊編譯)
ffmpeg -i input.wav -c:a libfdk_aac -b:a 192k output.m4a

# AAC VBR 模式
ffmpeg -i input.wav -c:a aac -vbr 5 output.m4a

FLAC 轉換

bash
# WAV 轉 FLAC(無損)
ffmpeg -i input.wav -c:a flac output.flac

# FLAC 壓縮等級(0-12,預設 5)
ffmpeg -i input.wav -c:a flac -compression_level 8 output.flac

Opus 轉換

bash
# WAV 轉 Opus
ffmpeg -i input.wav -c:a libopus -b:a 128k output.opus

# 語音最佳化
ffmpeg -i input.wav -c:a libopus -b:a 32k -application voip output.opus

# 音樂最佳化
ffmpeg -i input.wav -c:a libopus -b:a 128k -application audio output.opus

Ogg Vorbis 轉換

bash
# WAV 轉 Ogg Vorbis
ffmpeg -i input.wav -c:a libvorbis -q:a 5 output.ogg

# 指定位元率
ffmpeg -i input.wav -c:a libvorbis -b:a 192k output.ogg

AC-3 轉換

bash
# 5.1 個聲道 AC-3
ffmpeg -i input.wav -c:a ac3 -b:a 448k -ac 6 output.ac3

格式間互轉

MP3 ↔ AAC

bash
# MP3 轉 AAC(重新編碼,畫質降低)
ffmpeg -i input.mp3 -c:a aac -b:a 192k output.m4a

# AAC 轉 MP3
ffmpeg -i input.m4a -c:a libmp3lame -b:a 192k output.mp3

注意: 破壞性壓縮格式間互轉會降低品質。需要時只做一次。

FLAC ↔ WAV

bash
# FLAC 轉 WAV(無損)
ffmpeg -i input.flac -c:a pcm_s16le output.wav

# WAV 轉 FLAC(無損)
ffmpeg -i input.wav -c:a flac output.flac

FLAC 和 WAV 都是無損,互轉不降低品質。

串流複製(無損擷取)

bash
# 從 MP4 無損擷取 AAC 音訊
ffmpeg -i input.mp4 -vn -c:a copy output.aac

# 從 MKV 無損擷取 FLAC 音訊
ffmpeg -i input.mkv -vn -c:a copy output.flac

位元率指南

各格式推薦位元率

格式語音一般音樂高音質最高
MP364 kbps192 kbps256 kbps320 kbps
AAC48 kbps128 kbps192 kbps256 kbps
Opus24 kbps64 kbps128 kbps256 kbps
Vorbis64 kbps160 kbps192 kbps256 kbps

壓縮效率比較

同音質下位元率比較:

Opus < AAC < Vorbis < MP3
(低)                    (高)

Opus 在低位元率(64 kbps 以下)優勢最大。128 kbps 以上差異變小。

進階技巧

1. 取樣率變更

bash
# 降取樣 44100 → 22050 Hz
ffmpeg -i input.wav -c:a libmp3lame -b:a 64k -ar 22050 output.mp3

# 升取樣(不會提升音質)
ffmpeg -i input.mp3 -c:a aac -b:a 192k -ar 48000 output.m4a

2. 聲道變更

bash
# 立體聲轉單聲道
ffmpeg -i input.mp3 -c:a libmp3lame -b:a 96k -ac 1 output.mp3

# 單聲道轉立體聲
ffmpeg -i input.mp3 -c:a libmp3lame -b:a 192k -ac 2 output.mp3

3. 音量調整

bash
# 音量 2 倍
ffmpeg -i input.mp3 -c:a libmp3lame -b:a 192k -af "volume=2.0" output.mp3

# 標準化(EBU R128)
ffmpeg -i input.mp3 -c:a libmp3lame -b:a 192k -af "loudnorm=I=-16:TP=-1.5:LRA=11" output.mp3

4. 淡入淡出

bash
# 開頭 2 秒淡入,結尾 3 秒淡出
ffmpeg -i input.mp3 -c:a libmp3lame -b:a 192k \
  -af "afade=t=in:st=0:d=2,afade=t=out:st=60:d=3" \
  output.mp3

5. 時間範圍擷取

bash
# 從 30 秒開始擷取 2 分鐘
ffmpeg -ss 00:00:30 -t 00:02:00 -i input.mp3 -c:a libmp3lame -b:a 192k output.mp3

批次轉換

Linux/macOS

bash
# 所有 WAV 轉 MP3
for f in *.wav; do
  ffmpeg -i "$f" -c:a libmp3lame -b:a 192k "${f%.wav}.mp3"
done

# FLAC 轉 MP3(320 kbps)
for f in *.flac; do
  ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f%.flac}.mp3"
done

Windows PowerShell

powershell
# 所有 WAV 轉 MP3
Get-ChildItem *.wav | ForEach-Object {
  ffmpeg -i $_.FullName -c:a libmp3lame -b:a 192k ($_.BaseName + ".mp3")
}

各場景範本

音樂收藏(AAC 192 kbps)

bash
ffmpeg -i input.flac -c:a aac -b:a 192k -metadata title="標題" -metadata artist="藝人" output.m4a

Podcast(MP3 128 kbps 單聲道)

bash
ffmpeg -i input.wav -c:a libmp3lame -b:a 128k -ac 1 -ar 44100 -af "loudnorm=I=-16:TP=-1.5:LRA=11" output.mp3

封存(FLAC)

bash
ffmpeg -i input.wav -c:a flac -compression_level 8 output.flac

即時通訊(Opus 64 kbps)

bash
ffmpeg -i input.wav -c:a libopus -b:a 64k -application voip output.opus

常見問題

問題原因解決方案
破壞性壓縮間轉換品質下降重新編碼盡量只做一次
檔案巨大無損格式用破壞性壓縮
相容性問題格式不支援用 MP3 或 AAC
雜音低位元率升位元率
音量小來源音量低用 loudnorm 濾鏡
聲道配置錯誤來源多聲道-ac 2 指定立體聲

總結

音訊格式選擇:

  • 通用相容: MP3(192 kbps)
  • 行動/串流: AAC(192 kbps)
  • 封存/發燒友: FLAC
  • 即時通訊: Opus(64 kbps)
  • 剪輯/母片: WAV

快速參考:

  • MP3: ffmpeg -i input -c:a libmp3lame -b:a 192k output.mp3
  • AAC: ffmpeg -i input -c:a aac -b:a 192k output.m4a
  • FLAC: ffmpeg -i input -c:a flac output.flac
  • Opus: ffmpeg -i input -c:a libopus -b:a 128k output.opus
  • 無損擷取: -c:a copy

參考資料

Last updated: