線上影片壓縮器測試指的是在瀏覽器式壓縮器中執行一個來源檔案,比較實際輸入位元組與實際輸出位元組,並讀取該工具根據這兩個 Blob 大小計算所得的帶正負號百分比變化。測試執行的目的在於,在你自己的機器上使用你自己的影片,驗證兩件事:檔案在某個預設下實際縮減了多少,以及畫面與聲音是否能完整來回播放而不失真。Lizely 的影片壓縮器透過解碼瀏覽器支援的來源、將每一幀繪製到有界 Canvas 上,並在來源即時播放的同時,將該 Canvas 串流錄製為 WebM。錄製結束時,頁面會報告輸出尺寸、輸入位元組、輸出位元組,以及根據這兩個 Blob 大小計算所得的帶正負號百分比變化 — 因此你看到的數字就是該檔案的實際變化,而非通用估計。由於編碼以即時方式執行,兩分鐘的來源大約需要兩分鐘才能完成,而且分頁必須保持開啟,直到來源播放結束為止。來源、解碼後的影格或輸出內容,都不會離開目前的瀏覽器分頁。

影片壓縮器測試實際如何運作
測試並非目標大小的作業。當你測試壓縮器時,你是對一個真實的來源檔案進行一項受控實驗:相同的輸入在不同預設下分別送入,接著觀察輸出位元組、尺寸與播放行為如何變化。最有用的測試是將同一段影片在兩到三個預設下分別執行,並並列比較實際結果,而不是只相信預設描述。由於每個瀏覽器會公開不同的 WebM 編解碼路徑,同一個預設在相同的來源下,於 Chrome、Firefox 或 Safari 可能會產生不同的檔案 — 在你實際使用的瀏覽器中執行測試,是唯一能看出你的觀眾會收到什麼的方法。
若想更深入了解頁面內部的重新編碼過程,本機重新編碼說明會逐步講解此處使用的 Canvas + MediaRecorder 路徑。
限制測試的條件
在任何預設被提供之前,工具會對你選取的檔案進行五項嚴格限制的驗證。若其中任何一項未通過,測試就不會開始,也不會提供下載。
- 副檔名或 MIME 類型必須看起來像媒體檔案。
- 位元組大小必須為正數,且不得超過 500 MiB。
- 解碼後的長度必須大於零,且不得超過 300 秒。
- 解碼後影格的每邊像素不得超過 4096 像素。
- 解碼後的區域不得超過 3840 × 2160 像素。
這些限制是為了讓記憶體、Canvas 配置與即時播放保持可預測。檔名中的副檔名只是個提示:檔案可能命名為 MP4、WebM、MOV、M4V 或 Ogg,但是否能成功解碼仍取決於目前瀏覽器中安裝的編解碼器。有效的副檔名無法讓不支援的編解碼器變得可解碼,不支援的來源會直接產生錯誤,而不是悄悄地失敗。
測試期間各預設會改變什麼
三種預設是明確的產品選擇,而非對通用最佳值的宣稱。它們在三個具體數字上有所不同:最大輸出寬度、目標影格率,以及驅動所要求的錄影位元率的每像素位元數目標。這三者皆會保留來源長寬比、永不放大來源,並將最終輸出尺寸向下取整為偶數像素值,以獲得更廣泛的編解碼器相容性。
| 預設 | 最大寬度 | 目標影格率 | 行為 |
|---|---|---|---|
| 小型 (Small) | 640 px | 24 fps | 最小的檔案大小;適用於動作與細節不多的影片。 |
| 平衡 (Balanced) | 1280 px | 30 fps | 適用於一般螢幕錄製與日常影片的中間選項。 |
| 品質 (Quality) | 1920 px | 30 fps | 有界輸出中最大者;適用於值得保留精細細節的影片。 |
在底層,有界的每像素位元數啟發式方法會挑選所要求的位元率,然後將其限制在 180 kbps 到 8 Mbps 的範圍內。所要求的精確速率並不等同於實際速率 — 瀏覽器的 WebM 編碼器會做最終決定。寬度僅有上限,而非強制設定:在品質預設下的 720p 來源,輸出仍維持 1280 × 720,因為放大功能已停用。
在瀏覽器中執行測試
在頁面上執行完整測試路徑需要三個步驟。在來源播放完畢之前,請保持分頁為焦點。
- 選擇瀏覽器可解碼的影片,大小不得超過 500 MiB、長度不得超過五分鐘,或像素不得超過 3840 × 2160。
- 選擇 Small、Balanced 或 Quality 並開始壓縮;在來源即時播放期間保持分頁開啟。
- 檢視實際尺寸與位元組變化,下載 WebM,並在刪除原始檔之前完整播放一次。
若你在執行中途更換檔案、變更預設、取消或離開頁面,目前的工作就會失效,暫存物件網址也會被釋放。因此兩分鐘的來源大約需要兩分鐘才能完成 — 這是即時 Canvas 錄製的成本,而不是卸載的批次作業。
解讀工具回報的數字
當來源結束時,頁面會顯示四個具體數值:輸出尺寸(經長寬比保留與偶數像素取整後)、輸入位元組數、輸出位元組數,以及帶正負號的百分比變化。百分比僅根據測試實際產生的兩個 Blob 大小計算,因此這是針對你檔案的測量結果,而非行銷上的平均值。負百分比表示輸出小於來源;正百分比表示輸出大於來源。
計算範例。假設你在 Balanced 預設下測試一段 50 MiB 的影片,錄製得到的 Blob 為 12 MiB。帶正負號的變化為 (50 − 12) / 50 × 100 = 縮小 76%,絕對節省量為 50 MiB − 12 MiB = 38 MiB。同一段影片在 Quality 預設下可能會變成 21 MiB,即 (50 − 21) / 50 × 100 = 縮小 58% — 這是一項有用的比較,只有本次在這台機器上的執行才能產生。
當輸出比來源還大時
壓縮取決於內容,工具也不會假裝不是如此。低動作、色彩塊平坦的動畫在任何預設下都可能大幅縮減。帶有雜訊、嚴重顆粒、快速鏡頭晃動、急劇變化的細節,或本身已經高效率編碼的來源,可能會以相近大小甚至更大的形式回傳。當這種情況發生時,頁面仍然會回報真實的位元組與帶正負號的百分比 — 它絕不會把較大的檔案標示為縮減。
如果第一個預設令人失望,請嘗試其他預設。三種預設會產生明顯不同的位元率預算,因此從 Quality 降到 Balanced 或 Small 通常足以將頑固的結果拉低到來源之下。取捨在於可見細節與影格率,因此你真正想做的測試,是在實際影片上比較全部三種預設。
在刪除原始檔之前,驗證音訊與中繼資料
通過的測試並未完成,直到你完整播放過下載的整個檔案。當瀏覽器透過 HTMLMediaElement 的 captureStream 公開音軌時,工具會將該音軌加入輸出串流,但音訊是否納入取決於瀏覽器的擷取路徑,而非任何保證。字幕、章節、附件、旋轉標記、色彩中繼資料與 HDR 訊號皆不會被保留 — 這些已超出 Canvas + MediaRecorder 重新編碼能承載的範圍。當來源含有音訊時,在即時處理期間會以可聽見的方式播放,因此若不希望房間裡的人聽到,請小心使用裝置音量;將分頁靜音並不一定會讓擷取到的音軌靜音。
在刪除原始檔之前,請在目的地應用程式中驗證畫面、聲音、長度與播放。若想快速判斷純瀏覽器處理是否適合你的使用情境,瀏覽器安全性指南涵蓋了測試過程中會出現的資料流相關問題。
瀏覽器測試不適用的情境
對於隨意發布、螢幕錄製縮減,以及對自己影片的快速檢查,瀏覽器測試是合適的工具。但當你需要確定性、跨平台的主檔時,它就不適合。頁面不會標準化音量、不會混音、不會修復損毀的媒體,也不會保留 Canvas 管線看不到的容器特性。對於封存母檔、專業交付規格、精確的編解碼器設定檔、雙段速率控制、固定關鍵影格間隔、字幕保留,或跨機器的確定性輸出,使用經維護且指令經過審核的桌面編碼器是更誠實的做法。瀏覽器測試回答的是「這個預設在我的機器上對我的檔案做了什麼」;桌面編碼器回答的是「當每位接收者開啟我的檔案時,他們會看到什麼」。