M4A 是一個最清楚的例子,說明一個貫穿整個音訊和影片領域的問題:副檔名指的是盒子,不是裡面的東西。兩個都以 .m4a 結尾的檔案,內部可以像照片和掃描檔一樣不同。
一個 M4A 檔是一個只裝音訊的 MP4 容器。和影片 MP4 是同一套容器規格——一模一樣的盒子,只是把視訊軌拿掉了。
Apple 引入這個副檔名,是為了讓系統不要試圖用影片播放器去開一個純音訊檔。那就是這個名字的全部用途:它標示意圖。容器和編解碼器是分開的兩層,而 M4A 只描述了第一層。
在一個 M4A 裡面,你會找到兩種差異極大的編解碼器之一:
AAC——有損,而且常見得多。它丟掉細節來換取小檔案,是 MP3 的繼任者,而且在同樣位元率下比它好。一首三分鐘的歌大約 3 到 6 MB。
ALAC(Apple 無損)——無損。它壓縮但不丟掉任何東西;解開之後你會原封不動拿回原始取樣。同一首三分鐘的歌大約 20 到 30 MB。
所以兩個 M4A 檔案之間五倍到十倍的體積差距不是錯誤,而且兩個檔案都沒有壞。一個是壓縮過的近似值,另一個是完美的副本。副檔名完全沒告訴你手上是哪一種。
最快的判斷方法:拿檔案大小對照時間長度。接近每分鐘 10 MB 的是 ALAC;接近每分鐘 1 MB 的是 AAC。一個會回報音訊檔資訊的工具會直接把編解碼器名稱列出來。
你可能遇過的好幾個副檔名,其實是同一個容器換了標籤,用來告訴 Apple 軟體該怎麼對待這個檔案:
.m4a——一般音訊。.m4b——有聲書。容器完全相同;這個副檔名讓播放器記住你的進度,並提供章節導覽和速度控制。.m4r——鈴聲。.m4p——舊的 DRM 保護購買內容。這些是真的被鎖住,不只是貼了標籤。因為 .m4a 和 .m4b 是同一個格式,把一個長音訊檔改名成 .m4b 是一個真的有用的技巧:它讓一段錄音變成播放器會當成有聲書對待的東西,附帶進度記憶。檔案內部什麼都沒變。
第三種值得多講一點。把音訊從 MP4 裡拉出來變成 M4A 根本不需要重新編碼——那條軌道原封不動地從一個盒子搬到另一個,幾秒鐘,沒有任何品質損失。如果一個工具花了好幾分鐘從影片抽音訊、而且結果聽起來略差,那它重新編碼了一個不需要重新編碼的東西。
M4A 裡的 AAC 基本上在每一支手機、電腦、瀏覽器和現代車機上都播得出來。例外是較舊的硬體——MP3 時代的車用音響和獨立播放器——它們可能看得到檔案卻拒絕播,或者根本不列出來。
ALAC 窄一些。它在 Apple 軟體裡支援良好,在其他地方也越來越普及,但一台愉快播放 AAC 的裝置可能處理不了 ALAC,而從外面看那個失敗長得一模一樣。
正確答案完全取決於你實際上拿到的是哪個編解碼器。
從 AAC 轉:這是有損轉有損。檔案被解碼然後再壓一次,而第二輪只能移除更多。結果永遠不會比你開始時的好。只為了相容性才做,而且用寬鬆的位元率——192 kbps 以上——好讓第二輪的損傷保持聽不出來。
從 ALAC 轉:這是正常、健康的方向。你是在第一次壓縮一個無損原始檔,和從 WAV 開始完全一樣,而結果就是 MP3 能達到的最好水準。把 ALAC 留著當正本。
所以同一個操作——「把 M4A 轉成 MP3」——在一種情況下是不情願的妥協,在另一種情況下是正確的流程,而副檔名完全沒給你任何線索你在哪一種情況裡。
.m4b、.m4r 和 .m4p 是同一個容器貼了不同標籤