影片裁切工具會透過重新錄製一個固定的矩形區域,來移除每一幀的外圍部分,而幾乎所有匯出問題都發生在這些矩形不夠精確的時候。像 Video Cropper 這種以瀏覽器為基礎的裁切工具,會把所選的 X、Y、寬度和高度矩形以每秒 30 幀繪製到 Canvas 上,再利用瀏覽器的 MediaRecorder 把該 Canvas 錄製成 WebM 檔案,然後提供該檔案下載。由於每一步都是即時進行並採用整數像素運算,輸入值的微小誤差會導致裁切失敗、矩形被裁斷,或是產出無法被任何播放器開啟的檔案。其他問題則來自於期待工具去執行它原本就沒設計要做到的事,例如追蹤移動中的主體,或是完整保留來源檔案的所有 metadata 欄位。了解工具在哪裡畫線、在哪裡不畫線,正是乾淨且可發佈的 WebM 與必須重做一次的作品之間的差別。本指南將說明使用 Video Crop 時最常出現的錯誤、每個錯誤發生的原因,以及如何第一次就成功避免它們。

瀏覽器影片裁切工具實際的運作方式
裁切流程沒有任何隱藏步驟。Video Cropper 會載入瀏覽器能解碼的檔案,等待解碼後的寬度和高度填入,然後要求輸入四個數字:X 偏移、Y 偏移、寬度和高度。當你按下 Crop video 時,來源影片會在本機播放,並建立一個尺寸與你所要求矩形相符的 Canvas。每幀都會把固定的來源矩形繪製到該 Canvas 上;當瀏覽器透過媒體擷取公開音訊軌時,便會把該音訊軌附加到 Canvas 串流中,接著由 MediaRecorder 將串流儲存為 WebM。當來源播放完畢後,工具會修補一個有限的 Matroska Duration 到容器中,讓檔案擁有真實的播放長度,而不是 MediaRecorder 通常產生的串流式佔位值。當執行結束或元件卸載時,Object URL、計時器以及媒體軌都會被釋放。所有處理都在分頁內進行,因此輸入端所受的同樣限制也會套用到輸出結果上。
讓裁切失敗的座標與矩形錯誤
最常見的裁切失敗根本不是什麼創意決定,而是四個座標欄位中的差一錯誤。每個數值都必須是未經裁切且非負的整數像素數;寬度和高度各自至少要有兩個像素;X 加上寬度不得超過來源寬度;Y 加上高度不得超過來源高度。只要上述任何一條規則被違反,矩形就會直接失敗,不會位移、不會裁切、不會進位,也不會產出半殘的檔案。人們常常試圖輸入設計工具帶來的小數值、貼上帶有尾隨空格的座標,或是從使用中心原點而非左上原點的播放器複製 X 和 Y。工具會回報失敗並停止,因此錯誤的裁切絕不會默默變成錯誤的輸出。各欄位的行為如下:
| 欄位 | 意義 | 常見錯誤 |
|---|---|---|
| X | 從左上角往右移動矩形的像素偏移 | 使用了中心原點的數值,而非左上角偏移 |
| Y | 從左上角往下移動矩形的像素偏移 | 把 Y 與高度搞混,或使用了不同幀尺寸的數值 |
| Width | 裁切在來源像素中的水平範圍 | 設定寬度導致 X + 寬度超過右邊界 |
| Height | 裁切在來源像素中的垂直範圍 | 設定高度導致 Y + 高度超過下邊界 |
這些欄位背後還有兩個交互作用的上限。輸出區域不得超過 3840 乘 2160 像素,因此即使矩形在像素層面沒問題,只要在 4K 螢幕上推過該上限仍會被拒絕。來源任一邊不得超過 4096 像素,來源區域也不得超過 3840 乘 2160,這代表一支非常高的直式影片即使寬度不大仍可能會被拒絕。先讀取解碼後的來源尺寸,再挑選一個完全落在其中的矩形,便能避免絕大多數的座標錯誤。
輸入錯誤:檔案、格式與解碼後尺寸
接受的副檔名並不代表解碼一定會成功,因為底層編解碼器的支援取決於當下的瀏覽器。MP4、WebM、MOV、M4V 和 Ogg 雖然全部允許,但帶有 ProRes 或 HEVC 軌的 QuickTime 檔案,可能會在缺乏這些編解碼器的瀏覽器中無法解碼。挑錯檔案的情況通常要等到尺寸無法載入或一直停在 0 才會被發現。每個被接受的來源也都共用一組安全預算:正檔案最大 500 MiB、解碼後的長度必須大於 0 且不超過 5 分鐘、來源任一邊不得超過 4096 像素、來源區域不得超過 3840 乘 2160。六分鐘長的影片、高於 2160 的 4K 邊、或兩 GB 的 4K 檔案,都可能被同一道關卡拒絕。在輸入座標之前先等待解碼後的寬度和高度顯示出來,就能避免下一個常見錯誤:誤讀上一次執行或縮圖留下的舊數字,然後試圖去裁切一個尚未載入完成的檔案。
輸出錯誤:音訊、Metadata 與即時錄製步驟
大多數輸出問題來自裁切並不打算交付的功能。裁切是一次的瀏覽器錄製,並非非破壞性編輯,因此不會保留字幕、章節、附件、旋轉標記、HDR 訊號或色彩 metadata。只有在瀏覽器透過媒體擷取公開可擷取的音訊軌時,音訊才會被附加到 Canvas 串流中,這代表支援程度不一,而且在即時處理過程中,來源影片在分頁內仍可能會發出聲音。人們常常預期無聲的來源會變成無聲的 WebM,或預期帶字幕的來源會保留字幕,而這兩種預期都會導致必須重做的結果。如果輸出已經看起來有誤而且你需要一條復原路徑,修正看起來錯誤的裁切影片結果教學涵蓋了診斷步驟。
錄製以即時方式進行,因此長度為 1 分鐘的來源大約要花 1 分鐘、長度為 5 分鐘的來源大約要花 5 分鐘,而這段期間分頁必須保持開啟。關閉分頁、切換設定檔,或讓系統鎖定畫面,都可能中斷 MediaRecorder,讓你得到的檔案沒有有限的播放長度。錄製器會在 VP9、VP8 和通用 WebM 中挑選第一個瀏覽器回報可用的 WebM 編解碼器,所以檔案一定是 WebM,但具體的編解碼器無法指定。要求的位元率是根據裁切後的像素區域以 30 fps 計算,並限制在 180 kbps 到 8 Mbps 之間;這是一個已揭露的瀏覽器設定,並非目標大小或視覺品質的保證,因為快速動作、雜訊、顆粒、來源編解碼器以及瀏覽器的編碼器都會影響最終位元組。在你逐幀並於目標播放器上檢視完整輸出之前,請把原始檔案視為唯一的事實來源。
如何以精確像素正確裁切影片
遵循同樣的四步流程,讓工具在錄製前先把任何錯誤的輸入擋下來。
- 在瀏覽器中開啟 Video Cropper,並選擇瀏覽器可解碼的影片,例如 MP4、WebM、MOV、M4V 或 Ogg 檔案。在尚未顯示解碼後的來源尺寸之前,請先不要動到座標欄位。
- 將 X 偏移、Y 偏移、寬度和高度以整數且非負的來源像素輸入。確認 X 加上寬度不大於來源寬度、Y 加上高度不大於來源高度,再確認寬度與高度各自至少 2 像素,且輸出區域不超過 3840 乘 2160。
- 選擇 Crop video。在來源以即時方式播放且 Canvas 串流被錄製為 WebM 的期間,請保持分頁開啟,且不要切換設定檔或鎖定畫面。
- 下載 WebM,在目標播放器中播放,並完整驗證長度、裁切、音訊以及編解碼器支援。在確認完整結果之前,不要刪除原始檔案。
為了驗算數字,假設來源是 1920 乘 1080,而你想要一個置中的 1280 乘 720 矩形。水平偏移是 (1920 − 1280) 除以 2,等於 320 像素。垂直偏移是 (1080 − 720) 除以 2,等於 180 像素。X 加上寬度是 320 加上 1280,等於 1600 像素,且不超過 1920。Y 加上高度是 180 加上 720,等於 900 像素,且不超過 1080。輸出區域是 1280 乘以 720,等於 921,600 像素,遠低於 3840 乘 2160 的上限。這四個欄位通過所有關卡,因此可以放心開始錄製步驟。
當錯誤代表你需要不同的工具時
有些失敗根本不是裁切失敗,而是任務與工具不匹配。裁切只會改變可見的畫面區域,並對每一幀套用同一個固定矩形,因此它無法依時間剪輯、無法在不改變畫面內容的情況下調整像素尺寸、無法為了縮小檔案而壓縮、無法對物體進行模糊或馬賽克處理,也無法追蹤移動中的主體。剪掉前 10 秒的需求屬於 Video Trimmer。把 4K 影片縮為 1080p 但保留邊緣的需求屬於 Video Resizer。縮小檔案大小但保留完整畫面的需求屬於 Video Compressor。取出單一幀作為影像的需求則屬於畫面擷取工具。為真正的任務選對工具,是本指南所要預防的最後一個錯誤。
如果你正在權衡各種選項,常見的影片壓縮錯誤與如何避免它們對此有詳細說明。