當標準影片壓縮無法使用時,最直接的做法就是在瀏覽器內本機重新編碼檔案:頁面播放來源,將每個顯示的畫面繪製到一個有邊界的 Canvas,把該 canvas 以夾在 180 kbps 到 8 Mbps 之間的位元率錄製為 WebM,並在來源即時播放完畢後回報實際輸入與輸出位元組的差異。整個流程——解碼、畫面繪製、MediaRecorder 編碼與下載——都停留在目前的分頁內,因此來源檔案完全不必傳送到遠端伺服器處理。

人們會遇到「無法使用影片壓縮」的情況,原因不外乎幾種:他們信賴的桌面應用程式缺少編解碼器、來源檔案對網路上傳工具而言太大、公司或學校網路拒絕上傳、所選的網頁工具堅持要註冊,或是來源本身已是編碼效率很高的短片,難以再壓縮。在每一種情況下,根本問題都一樣——他們沒辦法讓位元組走原本規畫好的路線。本機重新編碼並明確指定寬度、影格率、時長與檔案大小上限,能提供一條他們實際可以執行的替代路徑。

what should i do if i cannot use video compression
無法使用影片壓縮時該怎麼辦

為什麼「使用影片壓縮」有時無法使用

「使用影片壓縮」這句話通常隱藏了幾種不同的任務:縮減檔案大小以作為電子郵件附件、讓短片符合上傳上限、分享螢幕錄影,或在上傳前縮小手機影片。在挑選任何編碼器之前,這些任務就可能失敗。桌面工具可能缺少解碼來源的編解碼器——僅限 QuickTime 的 MOV、最近手機錄製的 HEVC 短片,或安裝程式未包含音訊軌的 MKV。雲端工具可能拒絕超過數百 MB 的檔案,以今日手機標準來看其實很小。網路政策可能完全禁止上傳這個步驟。而已經是高效編碼的來源,無論選什麼設定都可能拒絕縮小,因為幾乎沒有剩餘的冗餘資料可以移除。

這些失敗有一個值得指出的共同特性:那不是編碼器的錯。它們是周圍環境的限制——上傳頻寬、缺少的編解碼器、檔案大小上限、已經壓縮過的內容。把「無法壓縮」當作換條路線的訊號,而不是「壓縮不可能」的徵兆,才是務實的重新框架。

用白話說明「本機 WebM 重新編碼」是什麼意思

像 Video Compressor 這樣的本機 WebM 重新編碼器,完全不會把來源傳送到任何地方。你從裝置上選擇檔案、挑選預設,頁面就會透過 HTML5 video 元素播放該檔案,同時一個隱藏的 canvas 以預設的節奏擷取每個畫面。接著 MediaRecorder 從該 canvas 串流寫出 WebM 檔案。當來源結束時,頁面會回報輸出尺寸、輸入位元組、輸出位元組,以及兩者之間帶正負號的百分比變化。這些工作以即時播放的速度進行,因為 MediaRecorder 是邊播放來源邊觀察 canvas,而不是以某種更快的平行模式運作。

三個預設決定了輸出。Small 把寬度上限設為 640 像素,目標影格率為 24 fps。Balanced 把寬度上限設為 1280 像素,目標影格率為 30 fps。Quality 把寬度上限設為 1920 像素,目標影格率為 30 fps。每個預設都保留來源長寬比、永不放大來源,並把輸出尺寸向下取整為偶數像素值,以便編碼器接受。錄製器會依據目前瀏覽器回報支援的格式,依序嘗試 VP9、VP8,再嘗試一般 WebM,這也是同一個來源在 Chrome 和 Firefox 中可能產生不同檔案的原因。

標準壓縮無法使用時如何壓縮影片

最乾淨的恢復路徑,是一套不依賴上傳、瀏覽器以外的編解碼器或註冊的固定本機工作流程。請依照下列步驟使用 Video Compressor。

  1. 挑選瀏覽器能解碼的來源檔案。有效的副檔名包括 MP4、WebM、MOV、M4V 與 Ogg,但已辨識的副檔名無法讓不支援的編解碼器變得可解——如果瀏覽器無法播放該檔案,工具會顯示錯誤,而不是默默產出結果。
  2. 確認檔案在工作限制內:500 MiB 或更小、五分鐘或更短、任一邊不超過 4096 像素、解碼後區域不超過 3840 × 2160 像素。超過任何一項限制的檔案會直接被拒絕。
  3. 選擇一個預設——Small、Balanced 或 Quality——然後開始壓縮。在來源即時播放期間,請保持分頁開啟且分頁為焦點;錄製器是在播放過程中觀察 canvas,因此關閉或將頁面背景化可能會中斷它。
  4. 等待來源播放完畢。兩分鐘的短片大約需要兩分鐘,因為編碼以即時速度執行;頁面會依據來源播放時間追蹤進度。
  5. 檢視回報的輸出尺寸、輸入位元組、輸出位元組,以及帶正負號的百分比變化。百分比僅根據兩個實際的 Blob 大小計算——輸出變大就會回報為變大,而不是被改標為縮小。
  6. 下載 WebM 並完整播放後,再刪除原始檔。確認影像、聲音、時長,以及與目的地的相容性。

無法使用其他工具時,比較三個預設

當替代工具無法使用時,內建的三個預設就是實際可決策的空間。差異具體且受限於工具本身,而不是主觀感受。

預設最大寬度目標影格率長寬比編碼器行為
Small640 px24 fps保留、永不放大,取整為偶數像素較低位元率,適用低動態短片的較小檔案
Balanced1280 px30 fps保留、永不放大,取整為偶數像素中等位元率,常見的螢幕錄影尺寸
Quality1920 px30 fps保留、永不放大,取整為偶數像素較高位元率,更接近來源細節,但代價是檔案較大

每個預設會選定其最大寬度、影格率與一個公開的每像素位元目標,接著把所要求的錄製器位元率夾在 180 kbps 到 8 Mbps 的範圍內。當結果不符需求時,嘗試別的預設屬於預期行為——這些預設是透明的產品選擇,而不是對某個通用最佳值的宣稱。

刪除原始檔之前檢查結果

壓縮後顯示的帶正負號百分比,是根據兩個實際 Blob 大小計算,也是這個工具唯一提供的量化摘要。輸出是變小還是變大,取決於動態、雜訊、來源編解碼器、瀏覽器的編碼器與預設。低動態動畫可能會大幅縮減;雜訊畫面、顆粒、晃動的鏡頭或已是高效編碼的來源,則可能產生相近或更大的檔案。請把這個數字視為一項測量值,而不是承諾。

在目的地要使用的播放器中,完整播放下載的 WebM。如果來源有音訊,請確認音訊有被一併錄下——只有在瀏覽器透過 HTMLMediaElement captureStream 公開可擷取軌時,音訊才會被錄下,且各瀏覽器的支援度不一。確認字幕、章節、附件、旋轉標記、色彩中繼資料與 HDR 訊號的表現如你預期:這個工具不會保留它們,且 WebM 容器也無法承載來源容器原本具備的所有功能。如果你需要歸檔母帶、精確的編解碼器設定檔、兩階段速率控制、固定關鍵影格間隔、字幕保留,或跨平台具確定性的輸出,建議的路徑是使用維護良好的桌面編碼器(例如 FFmpeg)搭配審核過的指令;想更全面比較各種做法,請參閱如何比較本機影片壓縮的各種做法。

會影響工作是否完成的限制

這些限制並非建議性質——它們界定了記憶體、Canvas 配置與錄製器的即時工作量,超過任何一項都會產生錯誤且不會下載。需留意的相互關聯限制包括:正整數位元組大小最多 500 MiB、解碼後時長大於零且最多 300 秒、每邊最多 4096 像素、解碼後區域最多 3840 × 2160 像素。命名為 MP4、WebM、MOV、M4V 或 Ogg 的檔案會被接受,但成功解碼仍取決於目前瀏覽器中安裝的編解碼器;副檔名無法讓不支援的編解碼器變得可解。無效的檔案、不支援的解碼器、超過限制的時長、超過限制的畫面、缺少的 canvas 串流,或無法使用的 WebM 錄製器,各自都會產生錯誤而非部分結果。

選擇新檔案、更換預設、取消或離開頁面,都會使目前的工作失效並釋出暫時性的物件 URL。一切都不會被悄悄截斷。頁面在錄製結束後會停止串流軌、在更換時撤銷物件 URL,並確保原始檔案在你自行刪除之前都保留在你的裝置上。

什麼時候桌面編碼器才是對的下一步

當障礙在於上傳步驟、目的地缺少瀏覽器內支援的編解碼器,或缺少簡單預設時,本機瀏覽器重新編碼就是正確答案。當目的地要求特定的編解碼器設定檔、特定容器、精確的位元率控制、兩階段編碼、固定關鍵影格間隔、字幕保留,或跨機器像素級確定性輸出時,本機瀏覽器重新編碼就不是正確答案。在這些情況下,正確的工具是維護良好的桌面編碼器——FFmpeg 是常見的參考——正確的輸入是原始來源,而不是瀏覽器產生的 WebM。把 WebM 視為快速分享或預覽用的成品,把原始檔視為母帶,直到桌面端跑過一輪後再產出最終歸檔檔案。

想更深入了解,請參閱使用影片壓縮前要確認的事項。