大多數影片轉音訊的錯誤都源自三件事:期待一個只會產生 Opus WebM 的工具輸出 MP3 或 WAV、相信支援的副檔名就代表內部的編解碼器也受支援,以及使用無法透過 MediaRecorder 暴露音軌的瀏覽器。這些錯誤各自來自一個在瀏覽器工作流程中其實並不成立的合理假設。容器不等於編解碼器,副檔名也不是契約,而錄製步驟是以播放速度即時執行,並不會在幾秒鐘內完成。對第一次使用的使用者來說,這些都不明顯,而每一項都會產生無聲、空檔或被拒絕的輸出,看起來像是工具壞了。事先辨識每一種模式,是避開它們最快的方式。下面的章節會把最常見的失敗模式對應到它們出現的確切步驟,然後走一遍能避開每一種錯誤的轉檔流程。

來自輸出格式的錯誤
最常見的影片轉音訊錯誤,就是預期輸出會是 MP3、WAV、AAC 或 FLAC。許多轉檔器標榜支援 MP3,所以使用者就假設每個工具的行為都一樣。使用 MediaRecorder 的瀏覽器工具並沒有內建的 MP3 編碼器;書面記載可用的格式是 Opus 包在 WebM 容器中。如果你的工作流程需要 MP3 或 WAV,你需要的是桌面工具或伺服器端的管線,而不是一個本機分頁。
第二個相關的錯誤,是假設可以把副檔名從 .webm 直接改為 .mp3 而不必重新編碼。改名只會更換外殼,內部的音訊串流仍然是 Opus。嚴格檢查副檔名或宣告的 MIME 類型的播放器會拒絕這個改過檔名的檔案,而任何讀取標籤的軟體都會回報錯誤的編解碼器。要把 Opus 重新編碼為 MP3 或 WAV,只能透過第二個支援這些編解碼器的工具來執行檔案,而不是靠改名。
第三個錯誤,是把下載的檔案當作原始音訊封包的無損複製。瀏覽器會解碼影片、透過媒體元件播放,然後重新錄製音訊串流。這個重新編碼的步驟會改變品質與檔案大小。結果會是一個 128 kbps 的 Opus WebM 音軌,擷取的是原始內容中聽得到的部分,而不是來源音訊串流的逐位元萃取。
來自來源檔案的錯誤
下一類錯誤來自來源檔案被識別的方式。以 .mp4 或 .mov 結尾的檔名只代表容器,並不保證內部的音訊與影片編解碼器為何。當瀏覽器無法解碼這些編解碼器時,影片元素根本不會載入,音軌也從未出現,任何擷取步驟都會以明確的訊息失敗。副檔名是標籤,不是契約。
另一個來源端的錯誤,是指向一開始就沒有音軌的檔案。一個投影片放映、一段系統音訊被靜音的螢幕錄影,或是一部匯出時沒有聲音的影片,都會觸發像「no audio track」這種明確的錯誤。修正方式是在開始前確認來源有音訊:用任何播放器開啟它,觀察音訊表頭有反應,再嘗試轉檔。
第三個錯誤,是忽略書面記載的來源限制。本機瀏覽器的路徑對檔案大小、時長與像素尺寸有硬性上限,因為記憶體與播放時間在分頁內是實際的限制。挑選超過這些上限的影片,保證會出現明顯的錯誤訊息,並得到不完整或空白的結果。確切數值會在後面的章節列出。
轉檔過程中的錯誤
即時處理是工作流程中最被低估的部分。瀏覽器在播放時擷取媒體元素,所以擷取所需的時間大約等於來源影片播放的時間。一段一分鐘的片段大約需要一分鐘;一段四分鐘的片段大約需要四分鐘。常見的錯誤是期待「瞬間」完成而關閉分頁,這會取消錄製,導致完全沒有產生檔案。
一個相關的錯誤,是在錄製尚未完成前就中途打斷分頁。跟著播放時間跑的進度標籤才是該觀察的指標,而 Cancel 會停止目前的工作。下載只會在播放到達片段結尾後才出現。
另一個常見的錯誤,是使用 Safari 或其他不支援 captureStream 或相容 MediaRecorder 格式的瀏覽器。音訊路徑會在影片元素上使用 HTMLMediaElement.captureStream,然後用瀏覽器提供的第一個支援的 Opus WebM MIME 類型錄製該純音訊 MediaStream。當這兩者之一缺失時,工具會以明顯的訊息停止,而不是產出損壞的檔案。修正方式是在近期的 Chromium 核心或 Firefox 版本上執行轉檔。
正確的影片轉音訊方式
使用 Video to Audio Converter 可以避開上面大部分的錯誤,因為這個工具就是圍繞著這裡描述的同一條瀏覽器路徑所打造。依照下面的步驟就能順利完成。
- 挑選一個本機的 MP4、WebM、MOV、M4V 或 Ogg 檔案,檔案大小不超過 500 MiB,時長不超過五分鐘,並且在任何播放器中開啟時都能聽到音軌。
- 在近期的 Chromium 核心或 Firefox 瀏覽器中開啟 Video to Audio Converter 頁面,並從你的裝置選擇本機檔案。檔案會在目前的分頁內讀取。
- 點擊 Extract audio,並在瀏覽器播放影片、MediaRecorder 即時擷取音訊串流的過程中,保持分頁開啟且作用中。
- 觀察進度標籤跟著播放時間推進。只有在需要停止並嘗試不同來源時才按 Cancel;否則就等待播放到達片段結尾。
- 錄製結束後,檢查結果旁顯示的時長與檔案大小,然後下載 Opus WebM 音訊檔案。容器已經以測量到的時長進行修補,相容的播放器會回報一個有限的時間軸。
關於來源限制與瀏覽器限制的錯誤
本機瀏覽器路徑能處理的確切限制很容易被誤讀。下表顯示書面記載的上限;超出這些數值的內容將無法處理,工具會以明顯的訊息停止,而不是產出部分檔案。
| 限制項目 | 書面記載的數值 |
|---|---|
| 支援的容器類型 | MP4、WebM、MOV、M4V、Ogg |
| 來源檔案最大大小 | 500 MiB |
| 最大解碼時長 | 5 分鐘 |
| 每邊最大像素數 | 4096 |
| 最大總像素面積 | 3840 × 2160 |
| 輸出容器與編解碼器 | WebM,內含 128 kbps 的 Opus 音軌 |
| 必要的媒體元素 | 至少一個可解碼的音軌 |
一個實際的錯誤,是把這些限制當作建議而硬踩。一段 12 分鐘的片段,或是一個長邊有 5000 像素的 4K 檔案,即使副檔名在支援清單內,也會在擷取開始前就被拒絕。如果工作流程需要更長或更大的來源,正確的答案是專用的桌面工具,而不是瀏覽器分頁。
就底層行為來說,HTMLMediaElement captureStream 方法 是瀏覽器用來暴露音軌的方式,而 MediaRecorder API 則負責把擷取到的資料區塊寫入 WebM 容器。正是這兩個瀏覽器 API 造成了 Safari 以及少數其他引擎即使在檔案格式本身受支援的情況下仍無法完成工作的原因。
關於隱私、權利以及輸出實際內容的錯誤
在誠實的清單中還有兩個錯誤值得一提。第一個是假設影片被上傳了。本機的瀏覽器路徑會在目前的分頁內解碼、播放、擷取並錄製音訊。來源檔案留在裝置上,沒有任何 API 收到內容。這項隱私特性正是檔案大小與時長限制存在的原因之一:因為永遠不會串流到伺服器,分頁本身就必須在播放期間容納整個媒體串流。
第二個是把輸出當成可以自由重複使用的複本,而不去檢查權利。這個工具並不會繞過 DRM、平台存取控制、受保護的串流、遠端 URL 或著作權限制。只有在你擁有來源或有明確授權可以擷取並重複使用其音訊時,才能使用其結果。對於長時段錄音、無損的製作工作、多聲道保存、精確剪輯,或特定的交付編解碼器,專用的桌面音訊編輯器仍然是正確的選擇。
想更深入了解編解碼器選擇與限制如何影響結果,從影片擷取音訊:準確度、編解碼器與限制一文會更詳細地說明其中的取捨。