影片壓縮器是一種程式,它會將一段影片從一組編碼設定重新編碼成另一組更小、更有效率的設定,同時保持畫面仍可觀看。壓縮的原理是權衡每幀的空間細節、降低影格率、限制編碼器可使用的位元速率,或同時運用這三種手段;最終產生的檔案會以接收裝置已支援的標準容器播放。像 Video Compressor 這類以瀏覽器為基礎的壓縮器,則能在不上傳來源檔案的情況下達成相同結果:頁面會在本機解碼所選的影片,將每一幀繪製到 Canvas 上,再利用瀏覽器內建的 MediaRecorder 將該 Canvas 重新錄製為 WebM 串流。由於錄製器是在來源於頁面上播放的同時觀察 Canvas 串流,因此編碼是以即時方式執行,所以一段兩分鐘的剪輯大約需要兩分鐘才能完成,而非瞬間結束。

影片壓縮器實際上對檔案做了什麼
數位影片檔案的本質,是一串以固定速率播放的圖片,再加上同步的音軌。每一幀都帶有若干細節,而每秒的影片內容也帶有編解碼器可用來描述這些幀的位元預算。影片壓縮器會透過壓縮這兩項預算來縮減檔案大小:降低每幀的空間細節、降低儲存幀的速率、降低編碼器可使用的位元速率,或是三者的任意組合。
即使不熟悉編解碼器的內部運作,這個數學關係仍相當直觀。以每秒 30 幀、1920 × 1080 錄製的來源,每秒所產生的原始像素資料量,已經多於以 24 fps、寬度 640 像素錄製的來源。當壓縮器將輸出寬度限制為 640、速率限制為 24 fps 時,串流每秒需要描述的像素就會自然減少。進一步限制位元速率,則會迫使編解碼器在每秒的影片內容上花費更少的位元,這通常意味著在編碼器認為感知重要性較低的區域採用更積極的量化。
由此可以歸納出三個重點。第一,輸出品質永遠受原始拍攝內容的限制,因為將一個已高度壓縮、充滿雜訊的來源重新編碼,無法神奇地讓它變得清晰。第二,取捨是真實存在的,因此較小的檔案意味著較粗糙的細節或較不流暢的動作,而非兩者都維持在完整品質。第三,結果取決於內容,因為同樣的位元速率在描述一段乾淨的訪談影片時,效率遠高於描述充滿顆粒的演唱會畫面或劇烈的鏡頭晃動。
瀏覽器版影片壓縮器如何在本機重新編碼
像 FFmpeg 這類標準的可安裝編碼器,會讀取來源檔案、解碼每一幀、以新的編解碼器設定處理這些幀,再寫入新的檔案。而像 Video Compressor 這類以瀏覽器為基礎的工具,則以瀏覽器的媒體堆疊取代磁碟的讀寫。頁面會接收所選的影片,對底層的 HTMLMediaElement 呼叫 captureStream,將每一幀以預設的解析度與影格率繪製到不透明的 Canvas 上,再將該 Canvas 串接到 HTMLCanvasElement.captureStream。接著,MediaRecorder 會使用目前瀏覽器回報支援的 VP9、VP8 或通用 WebM MIME 類型,將產生的 MediaStream 編碼為 WebM Blob。
這樣的設計會產生兩個實際的結果。第一,來源永遠不會離開這個分頁,因為不存在任何上傳步驟,網路完全看不到該檔案的位元組、檔名、時長或編解碼器。第二,錄製器的執行速度只能與來源播放速度一致,因為它是即時觀察 Canvas 串流的。若要快轉或加速播放,就會破壞錄製中的串流,這也是為什麼頁面在進度條依自然速率前進時,會保持來源持續播放。
當瀏覽器透過 HTMLMediaElement.captureStream 公開可擷取的音軌時(大多數現代瀏覽器在多種編解碼器與容器組合下都支援),音訊也會走相同的路徑。擷取到音軌時,會附加到錄製的串流中;若未擷取到,輸出就會以靜音播放。本工具不會對音訊進行正規化、混音或其他處理,因此裝置音量在處理過程中控制監聽音量,卻不會改變送入錄製串流的內容。
三種預設及其各自針對的目標
Video Compressor 提供三個具名選項,而非自由調整的品質滑桿;每個預設都是一組固定的寬度、影格率與位元速率行為組合。預設值記錄於工具本身的規格中,而非依類別慣例推測,因此下表反映的是每個預設在頁面中實際執行的結果。
| 預設 | 最大輸出寬度 | 目標影格率 | 典型用途 |
|---|---|---|---|
| Small | 640 像素 | 24 fps | 快速分享,在這種情境下,位元組數比動作流暢度更重要 |
| Balanced | 1280 像素 | 30 fps | 一般用途的分享,需要同時保持細節與動作的清晰度 |
| Quality | 1920 像素 | 30 fps | 本工具所能產生的最佳畫質,但仍受限於 WebM 錄製器 |
每個預設都適用以下三個規則。第一,輸出永遠不會放大來源,因此一段寬度 720 像素的剪輯,即使預設允許 1280,仍會維持在 720。第二,長寬比會保留,且選定寬度後,高度會等比例縮放。第三,輸出尺寸會向下取整為偶數像素值,因為許多影片編解碼器偏好偶數寬高以利區塊對齊。一個有界限的每像素位元數啟發式方法會決定錄製器所要求的位元速率,該要求會被限制在 180 kbps 到 8 Mbps 的範圍內,以確保錄製器永遠不會超出瀏覽器實際能產生的範圍。
如何在瀏覽器中於本地端壓縮影片
- 在最新的桌面瀏覽器中開啟 Video Compressor 頁面。本工具以瀏覽器為基礎,完全於分頁內執行。
- 選擇瀏覽器能解碼的影片檔案。檔案名稱可以是 MP4、WebM、MOV、M4V 或 Ogg,但有效的副檔名無法讓不支援的編解碼器變得可解碼,因為最終是由已安裝的瀏覽器解碼器決定能否播放。
- 確認來源符合已公布的限制:大小不超過 500 MiB,時長不超過五分鐘,任何一邊長度不超過 4096 像素,解碼後面積不超過 3840 × 2160。任何超出這些上限的檔案會在編碼開始前被拒絕。
- 選擇 Small、Balanced 或 Quality。每個預設如上所述會限制寬度與影格率,請挑選最符合您目標的取捨。
- 開始壓縮並保持分頁開啟、來源持續播放。錄製器會即時觀察 Canvas,因此離開分頁或在串流進行中關閉來源,可能導致目前的工作失效。
- 來源播放結束後,請檢視回報的輸出尺寸、輸入與輸出的位元組數,以及測量出的百分比變化。這些數值來自實際的 Blob 大小,本工具不會將較大的輸出標示為縮減。
- 下載 WebM 檔案,並在刪除原始檔之前完整播放(包括其音訊)。壓縮結果會因內容而異,且不同瀏覽器的錄製器行為也不同,因此唯一有意義的驗證,就是針對您實際收到的檔案所進行的測試。
工具回報的內容,以及為何輸出可能變大
來源播放結束後,頁面會回報四個具體數值:輸出尺寸、輸入位元組數、輸出位元組數,以及僅由這兩個 Blob 大小所衍生的帶正負號百分比變化。其公式為原始值之上的標準帶正負號變化。
計算範例。假設一個 50 MB 的來源編碼為 12.5 MB,帶正負號的變化為 (12.5 − 50) / 50 × 100,等於 −75%,這也是頁面所顯示的數值。反之,若同一個來源編碼為 55 MB,同一個公式會得出 (55 − 50) / 50 × 100 = +10%,頁面會顯示 +10%,而不是四捨五入或將結果重新標示為縮減。
誠實的回報至關重要,因為壓縮並非必然。低動畫量的動畫通常會大幅縮減,而嘈雜的演唱會畫面、顆粒、劇烈鏡頭晃動,或已是高效率的編解碼器,都可能產生大小相近甚至大於來源的輸出。即使使用相同的預設與相同的來源檔案,不同瀏覽器之間的錄製器也會有所不同,因為本工具會依序向瀏覽器請求 VP9、再請求 VP8,最後請求通用 WebM,並使用瀏覽器回報為支援的選項。當某個預設不適合該來源時,正確的下一步是嘗試其他預設,而非假設頁面回報有誤。
限制、錯誤,以及壓縮器不會保留的內容
來源檔案中可能包含的多類資訊,並不會被帶入 WebM。字幕、章節、附件、旋轉標記,以及色彩或 HDR 中繼資料,本工具皆不會保留,因為 Canvas-MediaRecorder 的路徑中沒有傳遞這些資訊的通道。容器採用 WebM,是因為瀏覽器 MediaRecorder 對生成 MP4 的支援在各家引擎之間仍不一致,而本工具偏好選用實際能產出檔案的容器。
有六種特定的失敗情況會取消工作,且不會產生下載。檔案無效或不支援的解碼器會觸發錯誤。來源時長超過五分鐘、任一邊的幀大於 4096 像素,或解碼後面積超過 3840 × 2160,會在編碼開始前被拒絕。瀏覽器拒絕公開 Canvas 串流,或 MediaRecorder 不接受某個 WebM MIME 類型,則會中止錄製。在這些情況下,本工具都不會默默截斷來源或交回一個半成品的檔案,因此輸出要不是完整的 Blob,就是根本沒有 Blob。
選擇新檔案、切換預設、執行中取消,或關閉分頁,都會使目前的工作失效,並釋放原本會讓來源與輸出在記憶體中持續存活的暫存 Object URL。任何需要在重新載入後保留下來的內容,都必須在分頁關閉前下載。
何時桌面編碼器才是正確的選擇
對於日常分享來說,瀏覽器內的壓縮工具通常就已足夠:它停留在分頁中,會產生可播放的 WebM,並回報實際發生的情況。對於歸檔母帶、專業交付規格、精確的編解碼器設定檔、兩階段速率控制、固定關鍵影格間隔、字幕保留,或必須在多台機器間匹配的確定性輸出,正確的工具是經過維護的桌面編碼器搭配經過審閱的指令,以 FFmpeg 為典範。
原因並非瀏覽器壓縮在它擅長的方面表現不佳。原因在於 Canvas-MediaRecorder 的路徑是為廣泛相容性與快速的本機使用所設計,而非交付規格所要求的精準旋鈕。如果目的地需要特定的 GOP 結構、MP4 內特定的音訊編解碼器,或必須在傳輸過程中存活的 HDR 訊號,那麼具備維護中命令列的真正編碼器是更安全的選擇。對於其他所有情況,包括透過訊息分享片段、縮減儲存空間,或將較小的版本附加到電子郵件草稿,瀏覽器路徑則是更快的方式。
若想更仔細地檢視同一個工具在準確度方面的表現,影片壓縮器準確度完整解析更詳細地涵蓋了回報數字所能保證與無法保證的內容。
如果您正在權衡各種選項,影片壓縮器入門指南:首次本機執行對此進行了詳細介紹。