影片壓縮的錯誤幾乎總是出自以下四種情況之一:選擇瀏覽器無法解碼的來源、挑選與目的地不符的預設、在即時編碼完成前中斷,或是尚未播放驗證結果就輕信大小報告。這些都不是什麼罕見的極端狀況,而是瀏覽器內部、本機、即時重新編碼實際運作方式所帶來的可預期後果。影片壓縮工具嚴格遵循這個模式:檔案會在當前分頁中解碼、一幀一幀繪製到有限範圍的 Canvas 上,再透過瀏覽器的 MediaRecorder 錄製回 WebM。因為編碼會在來源即時播放的同時觀察 Canvas 串流,所以每一項限制——長度、解析度、編解碼支援、預設——都會與其他限制相互影響。某一階段少了檢查,往往會在下一階段以錯誤、檔案變大,或靜悄悄地遺失音訊或詮釋資料的形式顯現出來。下列錯誤對應的是這個工作流程,而不是泛用的壓縮檢查清單,所描述的是這個工具實際會做的事,而非桌面編碼器能為你做的事。

how do i avoid mistakes when i use video compression
避免影片壓縮的錯誤:本機工作流程

大多數影片壓縮錯誤的共同點

壓縮影片的失敗往往集中在同樣幾個決策點:你交給工具的檔案、挑選的預設、是否讓即時編碼跑完,以及你是否真的播放過下載的檔案。只要知道限制藏在哪些地方,多數錯誤都能事先看出來。這個工具在開始之前會驗證副檔名或 MIME 類型、位元組大小、解碼後的長度、每一個維度,以及解碼後的像素總面積。這代表錯誤的編解碼、體積過大的檔案,或太長的長度會以錯誤訊息回報,而不是被默默裁切。其餘的錯誤則發生在編碼啟動之後:中途取消、切換預設、關閉分頁,或是假設回報的百分比代表結果可用而沒有實際播放觀看。請把這四個檢查點——輸入、預設、即時執行、驗證——各自視為錯誤可能藏身之處。

挑選檔案之前:能預防錯誤的輸入檢查

最常見的壓縮錯誤,就是餵給工具一個它無法解碼的檔案。瀏覽器能播放的格式雖然很多,但底層的編解碼仍必須安裝在當前分頁中。把檔案從 .mov 改副檔名為 .mp4 並不會補上缺少的編解碼;而在不支援 H.265 解碼器的瀏覽器上提供 H.265 來源,只會得到錯誤,不會產生較小的檔案。除了編解碼之外,這個工具還強制實施一組固定的輸入上限,用以限制記憶體用量、Canvas 配置,以及編碼必須處理的即時工作量。這些上限無法調整,因為放寬任何一項,都可能讓瀏覽器分頁在編碼途中耗盡記憶體。

限制數值重要性
最大檔案大小500 MiB限制來源載入時的記憶體用量
最大長度300 秒(5 分鐘)限制即時編碼的工作量
最大寬度或高度4096 像素限制 Canvas 每邊的配置
最大解碼面積3840 × 2160 像素解析度的硬性上限
必要的解碼器瀏覽器可解碼僅有容器副檔名並不足夠

只要任何一項檢查失敗,工具就會回傳錯誤且不提供下載。這是刻意的設計:不會有任何東西被悄悄截斷,因此不支援的編解碼、超過上限的長度、超過上限的畫面、缺少 Canvas 串流,或無法使用的 WebM 錄製器,都會產生清楚的失敗訊息,而不是壞掉的檔案。

挑選符合目標輸出的預設

選錯預設是次常見的錯誤。三種預設都是經過限制、透明化的產品選擇,而不是對通用最佳值的聲稱。每一種預設都會限制輸出寬度、設定目標幀率,再以一個有限的每像素位元數啟發式算出夾在 180 kbps 與 8 Mbps 之間的錄製位元率。這些預設也會保留來源長寬比、永不放大來源,並將輸出尺寸向下取整到偶數像素值,以便編解碼接受。

預設最大輸出寬度目標 fps位元率範圍典型用途
小檔640 px24180 kbps – 8 Mbps預覽、低頻寬分享
平衡1280 px30180 kbps – 8 MbpsHD 通用分享
高品質1920 px30180 kbps – 8 Mbps更高品質的播放

這裡的錯誤在於假設較高的預設總是讓檔案變小,或「高品質」永遠比較好。在低動態的動畫上,小檔預設能大幅縮小檔案;而把高品質用在同一個來源上,則會在根本不會變動的像素上空耗位元率。在雜訊多或搖晃的畫面上,任何預設都可能產生與來源相近甚至更大的檔案,因為編解碼必須花費位元去保留肉眼其實難以察覺的細節。先依目的地挑選預設,再檢查結果。

如何在本機壓縮影片而不犯常見錯誤

  1. 挑選瀏覽器可解碼的檔案,檔案不超過 500 MiB、長度不超過 5 分鐘、任一邊不超過 4096 像素、解碼面積不超過 3840 × 2160。在把檔案交給任何工具之前,請先在本機開啟它,確認瀏覽器能播放該編解碼。
  2. 開啟影片壓縮工具並選擇檔案。如果檔案未通過副檔名、大小、長度或維度的檢查,工具會回報錯誤且不產生下載。
  3. 依目的地選擇小檔、平衡或高品質。小檔上限為 640 px 與 24 fps,平衡為 1280 px 與 30 fps,高品質為 1920 px 與 30 fps。
  4. 開始壓縮,並在來源即時播放期間保持分頁開啟且處於焦點狀態。編碼會跟隨播放進行,因此兩分鐘的來源大約需要兩分鐘,而非瞬間完成。
  5. 不要選擇新檔案、切換預設、點選取消或離開頁面。任何一個動作都會使目前的工作失效,並釋出暫時性的物件 URL。
  6. 來源播放結束後,閱讀結果報告:輸出尺寸、輸入位元組、輸出位元組,以及有正負號的百分比變化。接著下載 WebM。
  7. 在刪除原始檔之前,請完整播放下載的檔案並檢查音效。音訊只有在瀏覽器提供可擷取的音軌時才會被包含;字幕、章節與大部分的詮釋資料都不會保留。

解讀結果報告並驗證下載的檔案

另一個常見的錯誤是沒有實際播放就相信那個百分比。這個工具會依據輸入與輸出 Blob 的實際大小計算變化,因此較大的輸出會誠實地以正號顯示,而不是被標示為縮小。這是報告中最有用的資訊,因為它能告訴你應該改用其他預設,而不是直接接受結果。下載之後,請從頭到尾完整播放 WebM,並開啟音效。確認長度、影像與音訊都與來源相符。如果音訊不見了,可能是瀏覽器沒有透過 HTMLMediaElement captureStream 公開可擷取的音軌,這個工具只有在音軌存在時才能偵測並加入串流中。不要假設把來源分頁靜音對擷取的音軌沒有影響;而完全不公開音訊的瀏覽器,無論使用哪種預設,都會產生靜音的輸出。

驗證很重要,因為這個工具不會進行音量正規化、不會混音、不會依據認證標準移除詮釋資料、不會修復損壞的媒體,也無法保留字幕、章節、附加檔、旋轉標記、色彩詮釋資料或 HDR 訊號。輸出容器只能是 WebM,因為瀏覽器產生的 MP4 對 MediaRecorder 的支援在各家瀏覽器間仍不一致;錄製器會依序嘗試 VP9、VP8,再退回通用的 WebM,因此同一個預設與來源在不同瀏覽器可能產生略有不同的檔案。如果想更仔細地了解如何實際驗證結果而不只是相信它,驗證工作流程會更詳細地說明同樣的檢查步驟。

當輸出沒有變小:嘗試不同的預設

壓縮效果取決於內容,能讓一段影片縮小的預設,可能讓另一段影片變大。低動態的螢幕錄影在小檔預設下通常會大幅縮小;但同一個預設套用在雜訊多的手持畫面上,輸出可能接近輸入大小,因為編解碼把位元花在肉眼無法利用的雜訊上。原本就已經過良好編碼器處理的高效率來源,也可能產生相近甚至更大的檔案。這種情況下誠實的做法是降低預設,而不是跟結果爭論。如果高品質產生更大的檔案,就對同一個來源改用平衡或小檔。你真正想要的結果,來自於依目的地的需求檢視下載的檔案,而不是單看預設名稱。若想更深入了解這些數字的意義,準確度指南會說明如何以位元組為基礎計算百分比。至於歸檔母帶、專業交付規格、精確的編解碼設定檔、兩階段速率控制、固定關鍵影格間隔、字幕保留,或跨平台的一致性輸出,這個工具並不適合——請使用經維護的桌面編碼器,例如搭配經審閱指令的 FFmpeg。瀏覽器壓縮器適合用於快速、本機、注重隱私的重新編碼,其中檢查結果是工作流程的一部分;而在完整播放下載檔案之前保留原始檔,則是防止重新編碼白費最可靠的做法。