音訊工具
六個工具,一條規則:絕不對已經壓縮過的軌再壓一次。
6 個工具
這個分類裡的工具
這裡每一個工具都遵守同一條規則,而那正是多數音訊網站會打破的那一條:你餵進來的東西,絕不會被壓縮第二次。其中一個工具把影片的音軌抽出來,而且完全不解碼。另外五個會把音訊解碼、在取樣上做該做的事,然後以未壓縮的形式寫出來。弄錯這件事,正是大家最常見、最安靜地把自己的錄音弄壞的方式,所以值得一頁把它講清楚。
有損、無損,以及為什麼「再壓一次」是錯的
格式分成兩個家族。無損的那些 —— WAV、FLAC、ALAC —— 把波形完整存下來,解碼後拿回來的跟放進去的完全一樣。有損的那些 —— MP3、AAC、Opus、Vorbis —— 丟掉一個模型認為你不會注意到的細節,而被丟掉的部分是永久消失的。
麻煩從「一個有損檔案被解開再壓一次」開始。第二個編碼器會把第一個編碼器留下的失真當成真實訊號,花位元去保留它,同時再疊上自己一套新的妥協。結果在客觀量測上更差,聽起來也常常更差,尤其是銅鈸、齒音與殘響的尾巴。而它也沒有省下任何有用的空間:為了蓋住傷害,你必須把位元率調到讓檔案不會比原本小。
所以規則很簡單:如果音訊已經是有損的、而你不是要編輯它,就不要重新編碼。搬它、複製它、換它的外殼都可以 —— 但不要為了換一個副檔名而讓它經過一次編碼器。事後轉成無損格式也沒有幫助:那只是用一個更大的檔案忠實地保存那些傷害。
為什麼「抽出音軌」絕不該重新編碼
你會遇到的影片幾乎都帶 AAC 音訊。那條軌在影片被錄下或輸出的時候已經編過一次,而那一次編碼就是這段聲音在世界上最好的版本。把它搬進自己的容器就是把那個版本給你,幾毫秒完成,沒有任何設定可以設錯。
多數提供這個功能的網站會立刻做成 MP3,因為 MP3 是大家會搜的詞。那是為了一個檔名而做的第二次有損壓縮。輸出是「近似值的近似值」,而那個本來可以完整保留的原始版本就沒了 —— 除非你還留著影片。
我們的抽音工具寫出的是 M4A:就是你本來就有的那個 MP4 容器,只裝音訊軌,一個位元組對一個位元組。它會回報搬了幾個音訊 packet,讓你可以確認什麼都沒被動過。全程不上傳 —— 這件事在這個分類比在多數分類更重要,因為抽出來的音訊往往是一段錄影裡最敏感的部分。
位元率、取樣率、容器 —— 三件常被混為一談的事
位元率是壓縮後的串流每秒用掉多少位元。它是有損編碼上最主要的品質旋鈕,而它是「已經發生過的那次編碼」的性質 —— 事後調不上去。把一個 128 kbps 的檔案用 320 kbps 重新編一次,會得到一個更大的檔案裝著同一份已經受損的音訊,那是音訊領域裡最常見的白費工之一。
取樣率是波形每秒被量測幾次 —— CD 是 44.1 kHz,多數影片是 48 kHz。它決定這個檔案裡最高可能存在的頻率,而跟位元率一樣,事後調高不會增加任何東西。位元深度(16-bit、24-bit)是第三件、又不一樣的事,而且只適用於未壓縮的音訊;一個有損檔案在任何有意義的意義上都沒有位元深度。
容器是外殼,而它不是編碼。一個 .m4a 檔裝的是 AAC;一個 .aac 檔也是,而 .mp4 裡的音訊通常也是。一個 .wav 可以裝未壓縮的 PCM,也可以(很彆扭地)裝壓縮資料。這就是為什麼「轉成 M4A」跟「轉成 AAC」可能是同一件事、也可能是不同的事,取決於你原本手上是什麼;也是為什麼一個工具應該告訴你編碼是什麼,而不是只講副檔名。
現在有什麼、它的代價、以及我們不會假裝的事
這裡住著兩種不同性質的工具,而那個差別很重要。從影片抽出音軌完全不需要解碼 —— 壓縮訊框原封不動搬過去,所以結果就是你影片裡那份音訊,一個位元組都不差。剪裁、合併、調音量、轉 WAV 則一定要解碼,因為你不可能在還是壓縮訊框的狀態下剪它或縮放它,必須先把它變回取樣。
對第二組工具來說,輸出時有兩條路可選:再壓一次,或者把取樣原樣存下來。我們選原樣存下來 —— WAV 裡的 16-bit PCM —— 所以第二次有損壓縮永遠不會發生。而這件事最後根本不需要編碼器,這也是為什麼這幾個工具沒有任何外部依賴、也沒有 WebAssembly:解碼器你的瀏覽器本來就有,而 WAV 檔頭是我們自己寫的 44 個位元組。
代價是體積,而且不小:44.1 kHz 立體聲的未壓縮音訊大約每分鐘 10.1 MB,所以從一個 4 MB 的 MP3 剪四分鐘出來,大約是 40 MB。每一個工具都會在你按下任何按鈕之前把確切數字算出來。這就是那個誠實的取捨 —— 講出來,而不是埋掉。
而這是我們不會跨過的那條線,包括當它指向我們自己的時候:我們不把這個叫做「無損」。第二次有損壓縮沒有發生,那是一個真實而且可以查證的保證 —— 但如果你的來源是 MP3 或 AAC,損失在它第一次被編碼時就已經發生,解碼救不回來。當輸入本身是有損的,卻把未壓縮的輸出稱為無損,正是這一頁想要反對的那種半真半假的標籤。
這裡仍然沒有 MP3 輸出,而那是同一個決定而不是一個缺口。把已經是有損的音訊編成 MP3 就是第二次有損壓縮,它需要一頁把這件事講白,也需要一個我們願意隨站散布的編碼器授權。它在規劃裡,會是它自己的一個工具,不會變成藏在這幾個工具裡的一個選項。
常見問題
為什麼這裡沒有 MP3 轉換器?
因為大家想轉的音訊幾乎都已經是有損的,把它變成 MP3 就是再壓一次。那是一個回應真實需求的真實工具,也在規劃裡,但它該待在一頁會把代價說清楚的頁面上,而不是藏在一個承諾無損的東西後面。
M4A 比 MP3 差嗎?
不會。同樣位元率下,M4A 容器裡的 AAC 一般優於 MP3,而它本來就是你影片裡的那一份。實際上每一個播放器與編輯軟體都打得開它。
可以在這裡改善音訊品質嗎?
不行,而且任何工具都不行。被有損編碼器丟掉的細節已經沒了。事後調高位元率或取樣率只會做出一個裝著同樣內容的更大檔案。
音訊會被上傳嗎?
不會。全部在你的瀏覽器分頁裡執行。打開開發者工具、看著 Network 分頁、跑一次工具 —— 你的檔案不會出現在任何一筆請求裡,而這個網站的安全政策本來就會擋掉那種請求。
為什麼全部都輸出成 WAV,而且這麼大?
因為任何會解碼你音訊的工具都必須把它再寫出來,而寫出來時再壓縮一次就是第二次有損壓縮。44.1 kHz 立體聲的未壓縮 16-bit PCM 大約每分鐘 10.1 MB,差不多是一般 MP3 的十倍。每一個工具都會在你開始之前顯示確切的輸出大小。
這些工具是無損的嗎?
從影片抽出音軌是,因為它完全不解碼。其他的不是,而我們不會用那個詞:它們不會加上自己的壓縮,但一個本來就是 MP3 或 AAC 的來源,在它第一次被編碼時就已經丟掉細節,解碼救不回來。
有大小上限嗎?
沒有為了商業理由設的上限,但有真實的技術上限。從影片抽音軌只是建議值,桌機約 500 MB。會解碼的那些工具有硬上限 —— 桌機單檔 300 MB、音訊總長 30 分鐘,手機一半 —— 因為解碼後的取樣必須裝進記憶體,而我們寧願先擋下來,也不要讓分頁在一半的時候死掉。