一個以瀏覽器為基礎的影片裁切工具,將裁切區域重新錄製成新的 WebM 檔案時,無法保留大多數的 metadata 欄位,而且只有當瀏覽器公開可擷取的音訊軌時,才會一併帶入音訊軌。此工具會將要求的矩形繪製到 Canvas 上,將該 Canvas 錄製為 WebM,並圍繞編碼後的串流寫入全新的容器,因此凡是存在於來源容器中、但不在畫面和音訊之外的內容——字幕、章節標記、附件、旋轉標籤、HDR 訊號,以及大多數的顏色 metadata——都會被捨棄。音訊是否能保留,取決於瀏覽器的媒體擷取介面支援程度,而這會因瀏覽器和來源編碼器而異。由於輸出是重新編碼的 WebM,而非 metadata 直通的副本,最安全的預期是:畫面會完整保留,聲音不一定能保留,而 metadata 會從一小組 Matroska 欄位重新建立。本文將清楚說明哪些屬性會保留、哪些會捨棄,以及在刪除來源檔案之前該如何驗證結果。

當工具重新錄製為 WebM 時,「保留」的定義
完全在瀏覽器中執行、將可見矩形重新錄製的影片裁切工具,無法執行 metadata 直通作業。工具會讀取來源檔案、在本機解碼、將所選擇的 X、Y、寬度和高度的矩形繪製到 Canvas 上,然後將該 Canvas 錄製成全新的 WebM。凡是存在於來源容器中、超出畫面和任何可擷取音訊的內容,都會留在來源檔案中。產出的 WebM 是帶有自家 Matroska header 的全新容器,包含有限的 Duration 欄位,以及瀏覽器從 VP9、VP8 或通用 WebM 中挑選的編解碼器。來源的旁置資料不會被複製過去。
對於詢問「使用影片裁切時,音訊和 metadata 是否會保留?」的讀者來說,務實的答案是:畫面會被重建,音訊只有在瀏覽器允許時才會被包含,而幾乎所有其他內容都不會。這是工具運作方式的必然結論——重新錄製 Canvas 會產生一個新的媒體檔案,而非帶有編輯內容的副本。
音訊軌:何時會保留,何時會捨棄
音訊處理是保留問題中最重要的部分,因為聲音是裁切工具偶爾能夠一併帶過的項目之一。當瀏覽器透過媒體擷取公開音訊軌時,Video Cropper 會將音訊附加到 Canvas 串流。這個條件並非總是成立:某些瀏覽器針對特定來源編碼器只公開影片軌,而可擷取音訊的支援會因瀏覽器和來源編碼器而異。契約已清楚說明支援程度不一、來源檔案在分頁開啟時可能可以發出聲音,而且輸出檔案必須同時檢查聲音和畫面。
由此衍生出三個務實原則。第一,不要因為來源檔案有音訊,就假設輸出檔案也有音訊;請在目的播放器中驗證。第二,如果瀏覽器只公開影片軌,輸出檔案將會是不含靜音音訊床的純影片 WebM,因此缺少音訊是正常情況,而非錯誤。第三,如果音訊很重要,在目的播放器確認聲音與來源相符之前,請保留原始檔案。這整個過程並非 metadata 直通——音訊能保留是因為 Canvas 串流與媒體擷取的音訊軌一同被擷取,而不是因為來源容器被保留下來。
Metadata:字幕、章節、旋轉、HDR 與容器欄位
「使用影片裁切時,音訊和 metadata 是否會保留?」這個問題中,非音訊部分的答案簡短且直接:大多數的 metadata 不會被保留。字幕、章節、附件、旋轉標籤、HDR 訊號,以及大多數的顏色 metadata,在重新錄製過程中都會被捨棄。裁切工具的工作是變更可見畫面區域並重新編碼;它並非安全的容器編輯器。輸出檔案的 Matroska header 僅包含 WebM 寫入器播放所需的內容:一個 Segment Info 區塊、一個 TimestampScale,以及以 timestamp-scale 刻度修補的 Duration,讓檔案回報有限的長度。
| 來源屬性 | 瀏覽器端裁切後的保留情況 |
|---|---|
| 選定矩形內的畫面像素 | 重新編碼為 WebM(VP9、VP8 或通用) |
| 音訊軌 | 僅在瀏覽器公開可擷取軌時保留 |
| 字幕與隱藏式輔助字幕 | 不保留 |
| 章節 | 不保留 |
| 附件(字型、影像) | 不保留 |
| 旋轉標籤 | 不保留 |
| HDR 訊號 | 不保留 |
| 顏色 metadata(基色、傳輸特性、矩陣) | 不保留 |
| 來源長度 | 以 timestamp-scale 刻度的新 Matroska Duration 取代 |
如果任何被捨棄的欄位在後續流程中很重要,就需要第二個步驟。與裁切器共用 WebM Duration 寫入器的 Video Compressor 也無法還原這些欄位,因為它同樣會重新編碼串流。只有讀取並重寫來源容器、但不重新編碼畫面的容器層級 remuxer 才能保留那些資料,而這不是瀏覽器端裁切工具在做的事。
如何使用 Video Cropper 在本機裁切影片
裁切步驟本身很直覺,所有動作都在同一個分頁中執行。完整程序是該工具所使用的審核序列,也是產生上述 WebM 的流程。
- 從您的裝置選擇瀏覽器可解碼的影片。依副檔名接受 MP4、WebM、MOV、M4V 和 Ogg 檔案,但解碼能力取決於目前的瀏覽器,因此接受的副檔名並不保證編解碼器支援。
- 等待來源尺寸載入完成。工具會在提供裁切欄位之前,先讀取解碼後的寬度和高度。略過這個等待步驟會導致矩形無效。
- 輸入以整數像素表示的 X 和 Y 偏移量,以及一個在每個來源畫面範圍內的寬度和高度。座標從來源畫面的左上角開始;X 向右移動裁切區域,Y 向下移動。每個值都必須是未經裁切且為非負的整數像素數量,且寬度和高度各自至少為兩個像素。預設值會選取整個畫面。
- 確認矩形通過檢查:X 加上寬度、Y 加上高度必須保持在解碼後的來源範圍內,且輸出區域不得超過 3840 × 2160 像素。無效的矩形會直接失敗,不會進行位移、裁剪、進位,或產生不完整的檔案,因此控制項不會讓您開始進行不完整的工作。
- 選擇「裁切影片」。來源檔案在本機播放,只有要求的區域會被繪製到 Canvas,而 Canvas 串流會被錄製為 WebM。在即時處理期間請保持分頁開啟——一分鐘的來源大約需要一分鐘,五分鐘大約需要五分鐘。
- 當 WebM 提供下載時,請儲存它,然後在目的播放器中播放,並在刪除來源之前確認長度、裁切位置、畫面和音訊。
開啟 Video Cropper,在您自己的檔案上執行此程序。同樣的檢查機制可防止產生不完整的檔案,因此矩形驗證失敗是即時失敗的訊號,而非損毀的輸出。
裁切後輸出 WebM 的內部內容
輸出容器刻意保持精簡。由於工具會使用瀏覽器回報的第一個 WebM 錄製器來重新錄製 Canvas 串流,因此編解碼器會是瀏覽器最先回傳的 VP9、VP8 或通用 WebM。工具會以大端序 timestamp-scale 刻度插入有限的 Matroska Duration,解析 Segment Info 和 TimestampScale,並就地修補 Duration。產生的檔案必須保持非空,且能以要求的尺寸解碼,而修補後的 Duration 就是讓串流式 MediaRecorder 輸出回報有限長度,而非無限制錄製的關鍵。
位元速率是作為公開的單趟瀏覽器設定,而非品質保證。請求值衍生自裁切後的像素面積,以每秒 30 影格為基準,範圍從 180 kbps 到 8 Mbps。快速動作、雜訊、顆粒、來源編解碼器和瀏覽器編碼器都可能改變檔案大小和可見品質,因此工具並不保證目標大小。這對保留問題很重要,因為它證實輸出檔案是矩形區域的全新編碼,而非來源的剪輯。
| 輸出屬性 | 數值或範圍 |
|---|---|
| 容器 | WebM,Duration 以 TimestampScale 刻度表示的 Matroska |
| 影片編解碼器 | VP9、VP8 或通用 WebM(由瀏覽器最先回報) |
| 影格速率 | 錄製器為 30 fps |
| 位元速率請求 | 衍生自裁切後的面積,範圍 180 kbps 到 8 Mbps |
| 最大輸出區域 | 3840 × 2160 像素 |
| 音訊 | 僅在瀏覽器公開可擷取軌時包含 |
| 來源檔案上限 | 最多 500 MiB,長度大於零且不超過五分鐘 |
對於詢問「使用影片裁切時,音訊和 metadata 是否會保留?」的讀者來說,上限說明了一切:畫面會以重新編碼的矩形保留,音訊取決於瀏覽器,metadata 則是 WebM 寫入器所寫入的內容——一小組 Matroska 欄位,而非來源的完整容器。
如何在刪除來源之前驗證裁切後的檔案
驗證是整個保留問題的安全網。由於契約明定「同時驗證聲音和畫面」以及「在完整檢視輸出之前保留原始檔案」,正確的工作流程應將 WebM 視為不受信任,直到目的播放器證明無誤為止。請在您的觀眾會使用的播放器中開啟檔案,拖曳至已知的時間戳記,並確認畫面符合要求的 X、Y、寬度和高度。聆聽與畫面對齊的音訊;如果來源檔案具有可擷取軌,但輸出檔案無聲,這是已知的支援情況,而非損毀。
在刪除任何檔案之前,請使用簡短的檢查清單:
- 在目的播放器中開啟 WebM,確認它能播放至結束,不會掉格或凍結。
- 拖曳至片段中間和最後一個畫面,確認裁切矩形在整個過程中都相同。工具會對每個畫面套用同一個固定矩形,不會追蹤移動中的主體。
- 確認音訊。如果缺少音訊,請判斷來源瀏覽器是否預期會公開可擷取軌;如果沒有,請在會公開的瀏覽器上重新錄製,或使用容器層級的工具。
- 確認播放器中的長度與來源相符。修補後的 Matroska Duration 應回報接近來源的有限長度。
- 只有在通過所有四項檢查之後,才能刪除來源。
如需更廣泛的裁切前習慣,影片裁切常見錯誤的裁切前檢查清單會更詳細地逐步說明相同的檢視流程。裁切器使用的 Matroska Duration 修補遵循 Matroska 容器規格,這就是為何串流錄製仍會回報有限長度。
相關閱讀:音訊、字幕、Metadata:影片壓縮會保留什麼。