在瀏覽器中裁切影片失敗,通常可以歸納為四個可預期的原因之一:輸入檔案無法解碼、矩形運算錯誤、錄製過程被中斷,或是輸出的 WebM 行為不如預期。將這四個面向視為一份檢查清單,能把卡住的匯出轉化為五分鐘的修復,因為 Video Cropper 會把每一道關卡攤在使用者眼前,而不是藏在黑盒子裡。這個工具完全在當前分頁中執行,因此不會上傳,也不會有遠端伺服器拒絕檔案;你所看到的每一次拒絕或輸出,全都是在本機決定的。一旦你找出是哪個面向出問題,具體的解法通常也會從工具本身的契約中浮現:檔案大小、解碼後的時長、像素尺寸、矩形邊界、目前開啟的分頁,以及最終輸出的 WebM。依序處理輸入、座標、處理、輸出這四個面向,幾乎能涵蓋所有回報過的問題,也能避免你重複執行同樣壞掉的裁切。

how do i troubleshoot a problem when i use video crop
如何使用 Video Crop 時排除問題

Video Crop 問題通常從哪裡開始

最快的找 bug 方式是從源頭開始,再往外層推進。輸入失敗會在座標被接受之前就出現;座標失敗會以「裁切按鈕停用」或「矩形被裁掉」的形式呈現;處理失敗會以「缺少下載」或「下載被截斷」的形式呈現;而輸出失敗只有在你把 WebM 播回去時才會浮現。由於 Video Cropper 在遇到無效輸入時,拒絕的方式不會是位移、裁切、四捨五入、或產出半套檔案,因此「成功下載」本身就算是一種確認:代表工具所接受的矩形確實落在來源範圍內,而且沒超過輸出面積上限。請善用這個事實:若有下載產生,代表矩形是有效的;若沒有下載產生,代表矩形或輸入本身有問題。

先診斷輸入端的問題

大多數裁切失敗都源自來源檔案。Video Cropper 接受 MP4、WebM、MOV、M4V 或 Ogg 檔案,但單看副檔名並不保證一定能解碼;當前的瀏覽器也必須能解碼容器內的編解碼才行。如果檔案選擇器接受了檔案,但解碼後的尺寸始終沒有出現,幾乎一定是編解碼的問題。在另一個瀏覽器中重新編碼一次,或改用更通用的編解碼,通常就能解決。

輸入的預算是明確的,並且適用於每一次載入:

  • 檔案大小:可接受的檔案上限為 500 MiB
  • 解碼後的時長:大於零,且最多五分鐘
  • 來源尺寸:任一邊不得超過 4096 像素
  • 來源面積:最多 3840 × 2160 像素

只要超過上述任何一個限制,工具就會在你輸入座標之前直接拒絕這個檔案。一個「幾乎」在限制內的檔案——例如某一邊是 4097 像素、時長 5 分 1 秒、剛好 500.1 MiB——會和損壞的檔案一樣出現同樣的錯誤訊息,因此請在載入後的第一時間讀取解碼出來的數值。如果檔案太長,請先把它切開,再分別裁切產生的段落,不要硬去和預算對抗。一個已載入卻顯示錯誤解析度的檔案,通常代表解碼器選到了備援串流,或是來源使用了瀏覽器沒有自動校正的非正方形像素。無論是哪種情況,你輸入的座標都是對照工具回報的「解碼後尺寸」來計算,而不是你記得的、或在另一個編輯器中看到的尺寸。

修正座標與矩形的錯誤

每一個裁切座標,都是從來源畫面左上角起算的整數像素數。X 將裁切區向右移動、Y 將其向下移動、寬度是水平方向的延伸、高度是垂直方向的延伸。當下列任何一個條件不符時,工具會直接拒絕執行,不會位移、裁切或四捨五入:

  • X 或 Y 為負值,或帶有小數
  • 寬度或高度小於 2 像素
  • X + 寬度 超出來源寬度
  • Y + 高度 超出來源高度
  • 最終輸出面積超過 3840 × 2160 像素

實際演算範例:一個 1920 × 1080 的來源,X = 100、Y = 50、寬度 = 800、高度 = 600。X + 寬度 = 100 + 800 = 900,仍在 1920 的來源寬度之內。Y + 高度 = 50 + 600 = 650,仍在 1080 的來源高度之內。裁切區域為 800 × 600,遠低於 3840 × 2160 的面積上限,因此工具會接受這個矩形。若把 X 改為 1500、寬度同樣維持 800,則 X + 寬度 = 2300,超過 1920 的邊界。工具會直接拒絕、不會產出半套檔案,原本的檔案也不會被動到。任何情況下的邏輯都一樣:把位移加上尺寸,再與來源尺寸比對。

一個常見的陷阱是把「寬度/高度」和「X/Y」混為一談。寬度與高度是「尺寸」,不是「位置」;X 與 Y 是「位移」。當你想把 X 設為 100,卻把 100 輸入到寬度欄位時,產生的矩形會從座標 (0,0) 開始一路延伸到右邊界之外。如果矩形在數學上有效,卻出現在錯誤的位置,請把它視為座標錯誤,而不是工具的 bug。如果你在輸出某一邊看到黑色邊框,代表矩形已經抵達畫面邊界,但該處來源其實沒有像素。請以解碼後的尺寸重算,不要憑記憶值重算,因為解碼後的尺寸是這個工具唯一認可的契約。

解決即時錄製期間的處理失敗

當你按下「裁切影片」後,工具會在本機播放來源、只將你指定的區域繪製到 Canvas 上,並把這個 Canvas 錄製成 WebM。處理過程是即時的,這代表一段 1 分鐘的來源大約需要 1 分鐘,並且分頁必須保持開啟。關閉分頁、切換到其他頁面,或讓裝置進入休眠,都會中斷錄製並且不會產出任何檔案。

如果 WebM 下載始終沒有出現,最可能的原因是分頁在行動瀏覽器上失去焦點,導致背景分頁被暫停。在手機上請讓分頁保持在前景;筆電上則請避免進入待機狀態。在手機上,也要關閉省電模式,讓編碼器能維持全速運作。如果下載仍然沒出現,很可能是來源的時長在解碼剝除容器開銷後超過了五分鐘;請先修剪再重試。

輸出編解碼會優先選用瀏覽器回報的 WebM 錄製器,依序可能是 VP9、VP8 或泛用 WebM。如果下游工具因為預期特定編解碼而拒絕這個檔案,請換一個瀏覽器重新錄製以切換編碼器。位元速率是依據裁切後的像素面積、以 30 fps 計算,並會限制在 180 kbps 到 8 Mbps 之間,因此裁切區域越小、位元速率就越低。這是一個公開的單趟 (single-pass) 設定,並非保證的檔案大小或視覺品質。快速動態、顆粒、來源編解碼與瀏覽器的編碼器都會影響實際的位元數,請不要把這個估算值視為契約。

當瀏覽器提供可擷取的音訊軌時,工具會將它附加到 Canvas 串流中。各瀏覽器的支援程度不同,且來源在即時處理期間可能會播出聲音。如果輸出完全沒聲音,請先換一個瀏覽器測試,再斷定來源沒有音訊。字幕軌、章節標記、附件、旋轉標籤、HDR 訊號,以及大多數的顏色詮釋資料都無法在裁切後保留,請事後重新加入,或改用不需要這些資料的工作流程。

輸出容器會修補一段有限的 Matroska Duration(以時間戳刻度為單位),避免播放器無限期地循環播放檔案,遵循 Matroska Media Container Format 規格。如果播放器仍然回報無限時長,代表檔案可能是由未執行相同修補流程的工具所產生。請從 Video Cropper 重新匯出,並確認新檔案能以你要求的尺寸解碼,再重複使用。

在瀏覽器中使用 Video Cropper 裁切影片

在遇到問題時,最快的路徑是用已驗證的輸入與精確的座標從頭來過。Video Cropper 提供了三個階段,依序執行這三個階段能避免大多數的問題。

  1. 選擇一個瀏覽器可解碼的影片檔(MP4、WebM、MOV、M4V 或 Ogg),並等待介面上顯示解碼後的來源尺寸。
  2. 輸入整數像素的 X、Y、寬度、高度值,並確保落在每一個來源畫面內;同時維持輸出面積在 3840 × 2160 以內。
  3. 按下「裁切影片」,在即時處理期間保持分頁開啟,處理完成後下載並徹底檢視輸出的 WebM,再決定是否刪除來源。

以相同的數字重複這三個步驟,能重現同一個裁切結果;當下游檢查失敗、需要確認問題出在來源還是矩形時,這非常有用。如果你正在考慮要以「會動的主體」還是「固定畫格」的方式處理,請先參考 Can the Crop Move During the Video in a Video Cropper? 再做決定。

在刪除來源之前先驗證輸出

當 WebM 下載完成,裁切工作還不算結束。請在最終的播放器中開啟它,並確認四件事:時長是有限的且符合你錄製的長度、可見區域與你輸入的座標一致、來源在有可擷取音軌時輸出也有聲音,以及檔案能在你預定發佈的平台上乾淨地開啟。一段在某播放器中看起來正常、在另一個播放器中卻無限循環的影片,通常代表時長修補沒有生效;請重新匯出,並在第二個播放器中再次測試。

如果輸出相對於你的預期出現了位移或縮放,代表矩形確實落在來源內,但不在你以為的位置。工具在拒絕時不會位移、裁切、四捨五入或產出半套檔案,因此你所下載到的任何內容,都是由工具「已接受」的矩形所產生。請把輸出的實際區域視為事實基準,從那裡重新計算,再重新匯出。如果你想在不更動裁切的情況下進一步縮小檔案,請在第二趟處理時以受限的預設值重新編碼輸出的 WebM;不要在同一個步驟中同時調整裁切與大小,因為這兩個交互作用分開除錯會更容易。

Limits and Settings That Affect the Result

A short reference table can save a troubleshooting cycle. The values below are taken directly from the verified Video Cropper contract, so they will not drift between releases.

ProblemLikely CauseFix
Crop button stays disabledInvalid rectangleVerify X, Y, width, height are whole pixels, at least 2, and inside the source
Decoded dimensions never appearCodec not supported by browserRe-encode to a common codec or try a different browser
No WebM downloadTab lost focus during real-time recordingKeep the tab foregrounded and disable low-power mode on mobile
Output has black edgesRectangle reached a frame edgeRecompute against decoded dimensions, not remembered values
Output is silentBrowser did not expose a capturable trackRe-test in a different browser before assuming no audio
Output loops in some playersPlayer does not honor the duration patchRe-export and confirm in a second player
LimitValue
Accepted file typesMP4, WebM, MOV, M4V, Ogg
Maximum file size500 MiB
Maximum decoded duration5 minutes
Maximum source side4096 pixels
Maximum source area3840 × 2160 pixels
Maximum output area3840 × 2160 pixels
Minimum width and height2 pixels each
Bitrate range180 kbps to 8 Mbps
Output codecsVP9, VP8, or generic WebM

When a problem persists after every check above, return to the Video Cropper tool with a fresh file and confirm whether the issue follows the source. If it does, the source needs repair before any further cropping; if it does not, the rectangle math is the next place to look.

Related reading: Common Mistakes When You Use a Video Crop Tool.