將影片壓縮到 100MB 代表產出的檔案最終位元組數必須等於或低於 100 × 1024 × 1024 位元組,大約是 104,857,600 位元組。由於影片檔案的大小主要取決於位元率乘以影片時長(再加上可忽略不計的容器額外負擔),要達到這個目標其實就是在於選擇夠低的位元率,讓指定的片段長度能容納在預算之內。在 100MB 的情況下,五分鐘(300 秒)的來源影片平均可達約 2.8 Mbps;兩分鐘(120 秒)的來源影片平均可達約 7 Mbps;30 秒的片段則有大約 28 Mbps 的餘裕。解析度與影格率同樣重要,因為調降它們能讓編碼器在較低位元率下仍維持畫質,避免明顯的方塊感。Video Compressor 直接處理了這項取捨:它將輸出寬度上限設為 640、1280 或 1920 像素,影格率為每秒 24 或 30 幀,並將向瀏覽器的 MediaRecorder 要求的位元率限制在 180 kbps 到 8 Mbps 之間。來源影片播放完畢後,工具會回報實際輸出的位元組數與簽署過的百分比變化,接著提供一個 WebM 檔案下載。

許多讀者在遇到電子郵件附件、課程平台上傳、聊天應用程式或簡易儲存配額的 100MB 上限時,才會接觸到這項任務。確切的門檻會有所不同,但根本問題都一樣:把檔案壓縮到足夠小,讓它跨越一個整數門檻,同時又不至於無法觀看。最快的思考方式是別再追逐模糊的「高品質」標籤,而是計算輸出檔案必須維持在多少平均位元率以下,再挑選編碼器能乾淨達成的解析度與影格率。

compress video to 100mb
compress video to 100mb

「將影片壓縮到 100MB」實際上代表什麼

影片檔案的大小可以用公式 位元率 × 影片時長 來近似估計,再加上容器與音訊的小額額外負擔。將預算(以 megabits 為單位)乘上片段長度(以秒為單位),即可得出編碼器必須維持在多少平均位元率以下才能符合預算。將 100 megabytes 換算為 megabits(× 8)會得到 800 Mb。將 800 Mb 除以來源片段的時長(以 moment 為單位),就會得到輸出檔案應該鎖定的平均位元率:

  • 30 秒:800 ÷ 30 ≈ 平均 26.7 Mbps
  • 2 分鐘 (120 秒):800 ÷ 120 ≈ 平均 6.7 Mbps
  • 3 分鐘 (180 秒):800 ÷ 180 ≈ 平均 4.4 Mbps
  • 5 分鐘 (300 秒):800 ÷ 300 ≈ 平均 2.7 Mbps

舉例來說,一段需要落在 100MB 或以下的 3 分鐘螢幕錄影,平均位元率的預算大約是 4.4 Mbps。如果編碼器要求 5 Mbps,檔案就會超出預算;如果要求 3 Mbps,則會舒適地落在預算之內。編解碼效率、場景複雜度與音訊位元率都會讓那個平均值上下浮動,這正是為什麼固定的位元率永遠無法保證固定的檔案大小。真正要記住的是每秒畫面對應的位元率預算,而不是滑桿上的絕對數值。

解析度與影格率扮演的是護欄的角色。4K 解析度、60 fps 的片段需要比 720p、24 fps 的片段高得多的位元率才能維持清晰畫質,因此對較長的片段而言,要把檔案壓到 100MB 唯一務實的做法就是降低解析度、降低影格率,或兩者同時調整。任何以 100MB 為目標的工具,因此都在幕後同時做了三個相互耦合的決定:輸出寬度的上限、每秒編碼的影格數,以及要向編碼器要求的位元率。

為什麼 Video Compressor 適合 100MB 的目標

Video Compressor 是圍繞著上述數學所描述的同一取捨所打造的。它接受單一瀏覽器可解碼的影片,大小不得超過 500 MiB,長度不得超過 5 分鐘,解碼後的解析度不得超過 3840 × 2160 像素。解碼、Canvas 繪圖、MediaRecorder 編碼與下載全部都在當前的分頁內完成。這個工具不會上傳來源影片,因此機密的螢幕錄影或交付給客戶的內容在使用者下載 WebM 結果之前都會一直留在裝置上。

三組預設直接呈現了這項取捨,而不是要求使用者盲目挑選位元率。每組預設會挑選最大輸出寬度、影格率,以及一個會被換算成 MediaRecorder 要求位元率的每像素位元數目標,接著再限制在 180 kbps 到 8 Mbps 之間。實際的位元組數與百分比變化會在編碼完成後回報,因此結果反映的是瀏覽器編碼器實際產出的內容,而不是行銷話術中的估計值。想深入了解本地端處理面向的讀者,可以閱讀 如何不經上傳壓縮影片檔案大小

如何將影片壓縮到 100MB

  1. 在最新的桌面瀏覽器中開啟 Video Compressor。請使用最新版的 Chrome、Edge、Firefox 或 Safari,以確保支援 WebM MediaRecorder 這條路徑。
  2. 挑選一個瀏覽器可解碼的來源檔案。檔名結尾可能是 MP4、WebM、MOV、M4V 或 Ogg,但能否成功解碼仍取決於瀏覽器中安裝的編解碼器。有效的副檔名無法讓不支援的編解碼器變得可解碼。
  3. 檢查來源檔案是否符合硬性限制:500 MiB、5 分鐘,以及解碼後的解析度最多 3840 × 2160 像素。任何超出這些限制的情況都會產生錯誤,而且不會提供下載。
  4. 挑選最符合你 100MB 目標的預設。必須遠低於 100MB 的短片段,通常用 Small 表現最佳;接近五分鐘上限的片段,通常用 Balanced 表現最佳;還有許多位元率餘裕的片段,則可以使用 Quality。
  5. 開始壓縮,並在來源影片即時播放期間保持分頁開啟且處於聚焦狀態。因此兩分鐘的來源影片大約就需要兩分鐘,因為 MediaRecorder 會在來源播放的同時觀察 Canvas 串流。
  6. 編碼完成時,請讀取回報的輸出尺寸、輸入位元組數、輸出位元組數與百分比變化。這個百分比僅根據兩個實際的 Blob 大小計算,因此正數代表檔案縮小,負數代表檔案變大。
  7. 下載產生的 WebM,接著用支援 VP8 或 VP9 的播放器完整播放一次。在刪除原始檔之前,請確認畫面、聲音、時長與最終大小都沒問題。

針對 ~100MB 輸出比較三組預設

下表顯示的是工具強制執行的預設界線。實際要求的位元率是根據每像素位元數的啟發式法則計算,並限制在 180 kbps 到 8 Mbps 之間,因此兩段時長相同的片段,根據動作量與細節多寡,可能會要求不同的位元率。

預設最大寬度影格率位元率範圍典型用途
Small640 px24 fps180 kbps–8 Mbps(已限制)必須遠低於 100MB 的長片段或高雜訊片段
Balanced1280 px30 fps180 kbps–8 Mbps(已限制)大多數螢幕錄影、演講、幾分鐘內的教學影片
Quality1920 px30 fps180 kbps–8 Mbps(已限制)擁有充足位元率預算的短片段;保留更多細節

對於大多數想把檔案剛好壓到 100MB 的讀者而言,真正相關的槓桿是時長。30 秒的片段留在 Quality 通常沒問題;5 分鐘的片段幾乎肯定需要 Small 或 Balanced,並搭配相應較低的要求位元率。如果某組預設讓檔案超過 100MB,從 Balanced 切換到 Small 通常就足以讓檔案落入範圍,因為寬度上限會從 1280 降到 640,影格率也會從每秒 30 幀降到 24 幀。

工具能做與不能做的事

這個工具會回報實際的位元組變化,絕對不會把變大的檔案標示為縮小。壓縮效果取決於內容:低動作量的動畫可以大幅縮減,而高雜訊、顆粒、鏡頭晃動、快速變化的細節,或本身已經很有效率的來源,則可能產出大小相近甚至更大的檔案。如果某組預設不適合該片段,務實的解決方法是換另一組預設,而不是重複使用同一組。

Video Compressor 會保留來源的長寬比,絕不會放大來源,並會將輸出尺寸向下取整到偶數像素值,以獲得更廣泛的編解碼器相容性。當瀏覽器透過 HTMLMediaElement captureStream 公開可擷取的音軌時,音訊會被一併包含。由於來源影片在即時處理期間會以可聽見的方式播放,因此如果音軌有被公開,裝置音量就很重要。字幕、章節、附件、旋轉標記、色彩元資料、HDR 訊號,以及許多其他容器功能都不會被保留。

WebM 是唯一的輸出容器,因為瀏覽器 MediaRecorder 對產生 MP4 的支援仍然不一致。錄製器會根據瀏覽器回報的支援情況,依序嘗試 VP9、VP8,再來是通用的 WebM,因此兩個瀏覽器使用相同的來源與預設,可能會產出大小不同的檔案。對於歸檔母帶、專業交付規格、嚴格的編解碼器設定檔、兩階段速率控制、固定關鍵影格間隔、字幕保留,或是需要跨平台一致輸出的情況,像 FFmpeg 這類經審閱指令操作的維護良好的桌面編碼器才是正確的工具。瀏覽器 MediaRecorder 的行為記載於 MDN 的 MediaRecorder 參考資料

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

編碼以即時方式執行,無法從網頁端加速,但輸出是普通的 WebM 檔案,可以立即播放並檢查。在現代播放器中開啟下載檔案,拖曳到結尾,確認總時長與來源相符。至少聆聽一段含有語音或音樂的片段,確認在預期情況下音軌是完整的。在作業系統的檔案內容中檢查檔案大小,確認實際位元組與頁面回報的數字一致。

如果檔案超過 100MB,最快速的解決方式是切換預設並重新執行:針對長度或雜訊從 Balanced 切到 Small,或針對原本位元率就偏緊的影片從 Quality 切到 Balanced。原始檔案永遠不會被修改,也沒有任何東西會被上傳,因此失敗的嘗試只需要付出等待的代價。在下載的 WebM 完整驗證大小、時長、畫面、聲音與目標用途的相容性之前,請先把來源檔案留在磁碟上。

延伸閱讀:在瀏覽器中於本地端將影片壓縮到 10MB