影片壓縮歸結到一組真正重要的細節:解析度上限、影格率目標、位元速率範圍、編解碼器選擇,以及決定工具能否啟動的輸入限制。影片壓縮器並不會神奇地讓任何檔案變小;它會以一組受限的參數重新編碼來源,然後讓你檢查實際的位元組數。有四項細節決定輸出大小:解析度(每幀像素數)、影格率(每秒幀數)、位元速率(每秒配置的位元數),以及編解碼器效率(編碼器表示動態與紋理的能力)。在這些之上還有輸入限制——檔案大小、時長與像素面積——它們決定工具是否會接受你的檔案。以像 Video Compressor 這種以瀏覽器為基礎、在本機運作的工具來說,這些細節並未被藏在 CRF 滑桿或雙 pass 編碼器背後;它們以三個具名預設集的形式呈現,並揭露其數值目標。理解每一項細節,以及工具允許你變更哪些項目,正是有意義的縮小檔案與最終大小相同甚至大於來源的檔案之間的差別。

what details matter when i use video compression
使用影片壓縮時,哪些細節真正重要

驅動影片壓縮的核心細節

檔案大小主要由位元速率乘以時長決定。解析度、影格率與編解碼器只在會改變維持畫面可接受品質所需位元速率的範圍內才具有影響。以 4 Mbps 編碼的 60 秒影片約為 30 MB(4,000,000 位元 × 60 秒 ÷ 8 位元/位元組 = 30,000,000 位元組);同一段影片以 8 Mbps 編碼時則約為 60 MB。在其他條件相同的情況下,將位元速率加倍,檔案大小大致也會加倍。

解析度決定每幀的像素數。解析度愈高,每幀像素愈多,通常就需要更多每秒位元數來避免細節顯得方塊化。影格率則決定每秒編碼的幀數。從 30 fps 降到 24 fps,幀數減少五分之一,當動作程度中等時,輸出通常也會以類似比例縮小。編解碼器效率是第四個槓桿:在相近的視覺品質下,VP9 通常會產生比 VP8 更小的檔案,但選擇編解碼器的是瀏覽器而非使用者,而且並非每個瀏覽器都同時支援兩者。

位元速率是你真正用來縮小檔案的可調變數。降低位元速率會縮減大小,但超過一定程度後,就會以方塊化偽影、天空的色帶、顆粒的拖曳以及細節流失等形式顯現出來。合適的位元速率取決於解析度、影格率、動作量與雜訊,這就是為什麼依據解析度與影格率來估算目標位元速率的預設集,通常能在不手動調校的情況下產出可用的結果。

決定壓縮能否啟動的輸入限制

在所有編碼細節發揮作用之前,工具必須先接受來源檔。Video Compressor 強制實施一組固定限制,以約束記憶體用量、Canvas 配置與即時運作。來源必須可被瀏覽器解碼、大小不超過 500 MiB、長度不超過五分鐘(300 秒)、任一邊不超過 4096 像素,以及解碼後面積不超過 3840 × 2160 像素。每項限制都會獨立把關工作;一個 499 MiB 但長度為六分鐘的檔案仍然會被拒絕。

有效的副檔名並不代表編解碼器一定能被解碼。命名為 MP4、WebM、MOV、M4V 或 Ogg 的檔案會被接受,但瀏覽器是否真能解碼它們,則取決於目前瀏覽器所安裝的編解碼器。瀏覽器無法識別的編解碼器會產生錯誤且不下載,而不會靜悄悄地產生截斷的輸出。這是最常被忽略的細節:人們只重新命名檔案而不重新編碼,然後以為只要換了新副檔名就萬事 OK。

預設集如何轉化為具體數字

這三個預設集是透明的產品選擇,而不是對通用最佳值的承諾。每個預設集會設定最大輸出寬度、目標影格率,以及一個位元速率目標,該目標再被限制在一個已揭露的範圍內。

預設集 最大輸出寬度 目標影格率 位元速率限制
Small 640 px 24 fps 180 kbps – 8 Mbps
Balanced 1280 px 30 fps 180 kbps – 8 Mbps
Quality 1920 px 30 fps 180 kbps – 8 Mbps

三個預設集皆保留來源長寬比,且絕不會放大來源——480p 影片在任何預設集下都會維持 480p。輸出尺寸會向下取整到偶數像素值,讓編解碼器有乾淨的數字可用。錄製器實際使用的位元速率,是由依據輸出解析度與影格率計算的「每像素位元數」啟發式決定,再被限制在 180 kbps 到 8 Mbps 的範圍內。這就是為什麼同一個檔案即使使用同一預設集,兩次執行仍可能產生些微不同的大小:啟發式與可用的編解碼器都會因瀏覽器而異。

使用 Video Compressor 在本機壓縮影片

  1. 在桌面或行動瀏覽器中開啟 Video Compressor,並確認來源檔可被瀏覽器解碼、大小不超過 500 MiB、長度不超過五分鐘,以及解碼後面積不超過 3840 × 2160 像素。
  2. 從你的裝置選擇檔案。命名為 MP4、WebM、MOV、M4V 或 Ogg 的檔案會被接受,但實際解碼仍取決於目前瀏覽器所安裝的編解碼器。
  3. 選擇預設集。Small 將輸出寬度限制為 640 px 並以 24 fps 為目標,Balanced 將寬度限制為 1280 px 並以 30 fps 為目標,Quality 將寬度限制為 1920 px 並以 30 fps 為目標。所有預設集皆不會放大來源。
  4. 開始壓縮。由於 MediaRecorder 在來源播放時觀察 Canvas 串流,因此編碼會即時進行,兩分鐘的來源大約需要兩分鐘。請在來源播放期間保持分頁開啟。
  5. 等待工具回報輸出尺寸、輸入位元組數、輸出位元組數以及帶正負號的百分比變化。百分比僅依據兩個實際 blob 大小計算,因此若為正值,代表輸出較大。
  6. 下載 WebM,然後在刪除原始檔之前,以媒體播放器播放完整檔案。確認畫面、音訊、時長以及與目的地的相容性。

切換檔案、變更預設集、取消或關閉分頁,都會使進行中的工作失效,並釋放暫存的物件 URL,因此即使你在執行中途改變心意,也不會有殘留的部分輸出需要清理。

工具會與不會保留的內容

輸出永遠是 WebM 檔案。透過 MediaRecorder 產生 MP4 的瀏覽器支援在各平台上仍不一致,因此錄製器會依序優先嘗試 VP9,再來是 VP8,最後才是通用的 WebM MIME。即使輸入與預設集相同,兩個瀏覽器也可能產生不同的輸出,因為編解碼器與編碼器的實作方式不同。

只有當目前瀏覽器透過 HTMLMediaElement captureStream 暴露音訊軌時,才會包含音訊。如果有,擷取到的音訊軌會附加到錄製串流中,並進入下載的 WebM;如果沒有,輸出將會是靜音。當來源包含音訊時,在即時處理期間會以可聽見的音量播放,因此請使用裝置音量,不要假設靜音開關對擷取音軌沒有影響。

字幕、章節、附件、旋轉標記、色彩中繼資料、HDR 訊號以及大多數其他容器特性都不會被保留。該工具不會依任何認證標準來正規化音量、混音、修復損壞的媒體,或去除中繼資料。若你需要用於歸檔母版、專業交付規格、精確的編解碼器設定檔、雙 pass 速率控制、固定關鍵影格間隔、字幕保留,或跨平台具確定性的輸出,該工具本身的說明文件會指向一個有維護的桌面編碼器,例如搭配審核過的指令使用的 FFmpeg。

在刪除原始檔之前先驗證結果

所回報的百分比僅依據兩個實際 blob 大小計算;工具絕不會將較大的檔案標示為縮小。壓縮具有內容依賴性。低動畫量的動畫可以大幅縮小,但帶有雜訊、顆粒、相機晃動、快速變化細節的畫面,或本來就已經高效率的來源,可能會產生與輸入大小相同甚至更大的檔案。當結果不符合目的地需求時,請嘗試其他預設集或不同的來源。

因為在你按下下載之前,什麼都不會離開分頁,所以原始檔仍在你的裝置上。請保留它,直到你已將下載的 WebM 從頭到尾播放完畢,並確認大小、時長、畫面、音訊,以及與目標平台或接收端的相容性。以桌面播放器讀取結果檔,是唯一能抓出瀏覽器預覽可能掩蓋之編解碼器怪癖的方法;若想更深入了解如何解讀那些數字,請參閱 影片壓縮後如何檢查結果。若想了解更廣泛的工作流程習慣,Video Compressor 秘訣與常見錯誤 涵蓋了最常出現的失敗模式。

如果目的地需要該工具無法保留的功能——特定的 MP4 設定檔、嵌入字幕、跨瀏覽器的確定性輸出——請將輸出視為草稿,並以桌面編碼器完成工作。