一份有文件紀錄的影片裁切程序,是一組以像素為精度的書面指示,內容是接收一支可在瀏覽器解碼的來源影片、為每一幀定義一個精確的矩形區域,並產出一段保留所選區域、捨棄其餘部分的有限長度 WebM。這份程序包含四個固定檢查點:在繪製前確認來源尺寸、輸入位於每張解碼幀內部的整數像素 X、Y、寬度與高度值、即時執行裁切並保持分頁開啟,以及在刪除原始檔前,檢視下載的 WebM 的長度、裁切準確度、音訊以及與目的端播放器的相容性。由於每個裁切矩形都必須以來源像素而非百分比或長寬比預設值來指定,因此這份有文件紀錄的程序也會記錄來源的解碼寬度與高度、所使用的四個精確座標,以及 X 加上寬度必須維持在來源寬度之內、Y 加上高度必須維持在來源高度之內的關係,以便日後能重現或稽核同一個裁切結果。

有文件紀錄的影片裁切程序涵蓋哪些內容
一份有文件紀錄的影片裁切程序不只是按鈕按壓的清單。它會記錄裁切工具所需的輸入、套用至每一幀的精確矩形、工具所強制執行的限制,以及確認輸出符合文件紀錄意圖的驗證步驟。就 Video Cropper 而言,它會解碼一支可在瀏覽器解碼的來源、將一個固定矩形繪製到不透明 Canvas 上、把該 Canvas 錄製為 WebM,並完全在瀏覽器分頁內修補一段有限的 Matroska 長度,因此這份有文件紀錄的程序必須記載來源格式(MP4、WebM、MOV、M4V 或 Ogg)、來源的解碼寬度與高度(以像素為單位)、四個裁切座標(X、Y、寬度、高度)、預期的即時處理時長(大致等於來源時長)、輸出容器(透過 VP9、VP8 或通用 WebM 的 WebM),以及驗證清單:時長、裁切位置、音訊存在與否,以及與目的端播放器的相容性。缺少上述任何一項筆記,該程序就無法在不靠猜測的情況下被重現、稽核或交付給其他人。
為何 Video Cropper 符合有文件紀錄的工作流程
Video Cropper 是以可重現性為核心所打造的。它接受一個固定矩形、將其套用至每一幀、把裁切後的區域錄製到 Canvas,並寫入一段有限長度的 WebM,而不會上傳來源或輸出。這種確定性行為正是書面程序所需:給定相同的四個像素值,該工具就會在相同來源上產生相同的裁切結果。該工具也會以明確的數字揭露其限制,包括 500 MiB 的最大檔案大小、解碼時長不超過五分鐘、來源任一邊不超過 4096 像素、來源面積不超過 3840 × 2160、輸出面積不超過 3840 × 2160,以及矩形尺寸至少 2 像素,因此有文件紀錄的程序可以包含一項能在產生部分檔案之前就快速失敗的預先檢查。由於解碼、裁切、錄製與長度修補都發生在當前分頁中,工作流程可以在頁面載入後重複執行,且書面步驟並不依賴遠端服務是否上線。
使用 Video Cropper 裁切影片的有文件紀錄步驟
- 在桌面瀏覽器中開啟 Video Cropper 頁面,並點擊檔案選擇器。選擇一支格式為 MP4、WebM、MOV、M4V 或 Ogg 的可在瀏覽器解碼的來源影片,然後在繼續之前等待工具顯示出解碼後的來源尺寸。
- 在文件中記錄解碼後的來源寬度與高度。後續每一個步驟都依賴這兩個數字。
- 以來源像素計算裁切矩形。設定 X(從左上角算起的水平偏移量,以像素為單位)與 Y(從左上角算起的垂直偏移量,以像素為單位),然後設定寬度與高度(兩者皆至少 2 像素)。確認 X 加上寬度維持在來源寬度之內、Y 加上高度維持在來源高度之內,並確認寬度乘以高度不超過 3840 × 2160。
- 將這四個數值輸入工具的 X、Y、寬度與高度欄位。預設值已選取整個畫面,因此請以計算出的矩形加以取代。
- 選擇裁切影片(Crop video)。保持瀏覽器分頁開啟並置於前景。處理以即時方式進行,因此一分鐘的來源大約需要一分鐘;請勿關閉、重新載入或離開此頁面。
- 當工具提供下載時,將 WebM 儲存到已知的位置。在目的端播放器中開啟它並檢視整個檔案。
- 執行驗證檢查清單:確認時長與來源相符、確認裁切矩形在多個幀上正確、確認音訊存在(若有預期)或不存在(若未預期),以及確認檔案能在目的端播放器中無失真地播放。
- 在整個輸出經過檢視並接受之前,保留原始來源檔案。
這八個步驟構成有文件紀錄的程序。第 1 步與第 2 步收集輸入,第 3 步產生一個有效的矩形,第 4 步與第 5 步執行裁切,第 6 步擷取輸出,第 7 步驗證輸出,第 8 步保護原始檔。每一個步驟都是單一決策,這正是該程序可被書寫並稽核的原因。
輸入限制與輸出屬性
在開啟工具之前,先將限制寫下來,以便有文件紀錄程序的讀者能夠在不反覆嘗試的情況下,預先驗證來源與矩形是否有效。下表列出工具強制執行的數值,以及程序撰寫者應記錄的輸出屬性。
| 屬性 | 數值或行為 |
|---|---|
| 可接受的來源副檔名 | MP4、WebM、MOV、M4V、Ogg(編碼支援取決於瀏覽器) |
| 最大來源檔案大小 | 500 MiB |
| 最大解碼時長 | 五分鐘以上(大於零) |
| 最大來源邊長 | 4096 像素 |
| 最大來源面積 | 3840 × 2160 像素 |
| 最大輸出面積 | 3840 × 2160 像素 |
| 最小寬度與高度 | 各 2 像素 |
| 座標原點 | 來源畫面的左上角 (0, 0) |
| 座標類型 | 未裁切、非負的整數像素 |
| 輸出容器 | 透過 VP9、VP8 或通用 WebM 的 WebM(由瀏覽器最先回報) |
| 輸出位元率 | 依裁切後像素面積於 30 fps 推導,範圍限制為 180 kbps 至 8 Mbps |
| 處理位置 | 當前瀏覽器分頁;不進行上傳 |
| 音訊處理 | 當瀏覽器公開可擷取音軌時附加;處理期間可能可被聽見 |
| 時長處理 | 錄製完成後,以 TimestampScale tick 插入有限的 Matroska Duration |
| 裁切後保留 | 每一幀的可見矩形區域 |
| 裁切後不保留 | 字幕、章節、附件、旋轉標籤、HDR 訊號、色彩中繼資料 |
無效的矩形——包括超出邊界、非整數、寬度或高度低於 2 像素,或產生大於 3840 × 2160 的面積——會在不位移、不裁剪、不進位,也不產生部分檔案的情況下失敗,這對於需要可預測失敗行為的書面程序來說是預期中的表現。輸出容器為 WebM,其中以 TimestampScale tick 插入有限的 Matroska Duration 值(依據 IETF Matroska 規格),而裁切是透過標準的 HTML Canvas drawImage 路徑 來呈現。一份有文件紀錄的程序若同時引用這兩份規格,就能提供審閱者足夠的脈絡,來確認輸出容器與呈現步驟符合文件紀錄的意圖。
為重複使用而記錄程序
一份有文件紀錄的程序只有在能夠被重複執行時才有用。為了讓 Video Cropper 工作流程可重複,請記錄來源檔名、解碼後的來源寬度與高度、所使用的四個精確座標、所套用的位元率下限與上限、輸出檔名以及驗證結果。將這些筆記與輸出的 WebM 存放在同一處,讓下一位讀取該資料夾的人能在不解碼來源的情況下重建該矩形。當同一矩形要在多個來源上重複使用時,請以參考解析度(例如在 1920 × 1080 的畫面上,X 等於 100 像素、Y 等於 60 像素)為基準儲存座標,再依各來源進行縮放。當矩形必須對應某個平台的畫面時,無論是 Shorts 或 Reels 的 9:16、正方形貼文的 1:1,或是垂直動態的 4:5,都必須記錄長寬比與所使用的精確像素尺寸,因為工具並未內建長寬比預設值,必須由程序自行提供。
匯出後驗證裁切後的 WebM
驗證是將裁切轉化為有文件紀錄之結果的那一步。從頭到尾在目的端播放器中播放下載的 WebM,而非僅僅播放前幾秒。確認時長在錄製容差範圍內與來源相符、確認矩形在至少三個幀(開頭、中段、結尾)上位於正確位置,並確認在瀏覽器公開可擷取音軌時音訊完好無損。若目的端是社群平台,請先將 WebM 上傳到私密的或草稿位置再發布,因為未保留的容器特性(字幕、章節、附件、旋轉標籤、HDR 訊號及色彩中繼資料)不僅無法在裁切後存活,也可能會被該平台重新編碼。若需要更深入的檢視清單,請參考 本機影片裁切的逐步驗證工作流程。在整個輸出——包括平台端的上傳——被接受之前,請保留原始來源。
記錄影片裁切程序的本質,就是寫下四個數字、三項輸入限制,以及一份驗證清單。透過 Video Cropper,這些數字來自來源的解碼尺寸,限制就是上表所列的數值,而驗證清單則是按順序套用的八步程序。一旦程序被撰寫完成且輸出經過檢視,同一個裁切結果便能在不解碼來源或不臆測座標的情況下被重新執行、稽核,或交給另一位編輯。
如果您正在權衡各種選項,修正看起來不對的裁切影片結果 對此有詳細說明。