線上影片剪輯是一項瀏覽器端操作,您選擇的檔案會在目前的分頁中被解碼、跳轉並重新錄製,而不是上傳到遠端伺服器。該工具會在瀏覽器內建的媒體解碼器中開啟您的本機影片,只播放您指定的範圍,並透過瀏覽器用於螢幕與網路攝影機擷取的同一組 MediaRecorder API 來擷取該播放內容。輸出會是一段全新的 WebM 剪輯,其長度符合您要求的範圍,而來源檔案全程都停留在您的裝置上,從未透過網路傳輸。像 Video Trimmer 這類工具就是採用完全相同的模式:從您的磁碟挑選一部本機影片、以秒為單位輸入開始與結束時間、選擇 Trim video,接著在瀏覽器中下載一段有限長度的 WebM 剪輯。來源中的位元組完全不會送到伺服器,而重新編碼後的 WebM 是瀏覽器在這次操作中唯一產生的檔案。

瀏覽器工具中「線上」一詞的真正含義
在影片剪輯領域中,「線上」這個詞承擔著兩種不同的意義,而混淆它們正是誤導性行銷最常見的來源。伺服器端的剪輯工具會將您的檔案上傳到遠端機器,在那裡執行 FFmpeg 或類似的編碼器,再把結果送回來。相比之下,瀏覽器端的剪輯工具完全在目前的分頁中執行:檔案透過 File API 讀取,由瀏覽器的媒體堆疊解碼,並使用瀏覽器自身的錄製基礎元件重新編碼。最終結果會以 Blob 的形式交付,您可以透過一般的瀏覽器下載對話框儲存。
這個區分之所以重要,原因有三。首先,來源影片從未傳輸出去,這消除了在我們的 線上影片剪輯工具隱私檢查 中所探討的一整類隱私與頻寬疑慮。其次,剪輯速度受限於播放速度 — 因為擷取程序錄製的是正在播放的內容,您無法以比即時更快的速度剪輯。第三,輸出受制於瀏覽器原生能夠編碼的格式,這就是為什麼結果是 WebM 而非 MP4。
剪輯背後的瀏覽器管線
即使是介面外觀不同的瀏覽器端剪輯工具,基本上都遵循同一條管線。各階段緊密耦合:前一個階段一旦失敗,後續任何階段都無法執行,而您下載的結果只會在所有檢查通過後才會產生。
| 階段 | 瀏覽器的動作 | 執行位置 |
|---|---|---|
| 1. 檔案選擇 | 使用者挑選一部本機 MP4、WebM、MOV、M4V 或 Ogg 檔案 | 目前分頁中,透過檔案選擇對話框 |
| 2. 解碼與長度 | 瀏覽器讀取容器標頭並回報可播放的長度 | 瀏覽器的 HTMLMediaElement |
| 3. 範圍驗證 | 開始 ≥ 0,結束 > 開始,結束 ≤ 長度,剪輯長度 ≥ 0.1 秒 | 頁面中的 JavaScript |
| 4. 跳轉與擷取 | 媒體元素跳轉到所要求的開始時間;captureStream() 公開一個即時 MediaStream | 分頁中的媒體元素 |
| 5. 錄製 | MediaRecorder 以播放速度並使用 VP8、VP9 或 Opus 對串流進行編碼 | 瀏覽器的編碼器 |
| 6. 區段修補 | 重新編寫輸出的 WebM,使其 Segment Info 回報所要求的長度 | 頁面中的 JavaScript |
| 7. 下載 | Blob 透過可撤銷的 Object URL 公開;使用者儲存檔案 | 瀏覽器下載對話框 |
跳轉與擷取步驟是多數讀者意想不到的部分。如 MDN 的 Recording a media element 指南所述,瀏覽器無法像封包層級的剪輯工具那樣深入壓縮影片並移除位元組;它必須播放該片段並重新錄製。這就是為什麼剪輯是即時作業而非瞬間完成,也說明了編碼後的邊界可能無法精準落在您指定的影格上。
如何在瀏覽器中線上剪輯影片
像 Video Trimmer 這類工具中,使用者面向的步驟刻意保持精簡,以確保上述管線的可預測性。
- 選擇一部支援格式的本機影片(MP4、WebM、MOV、M4V 或 Ogg,上限 500 MiB),並等待長度欄位由瀏覽器的媒體解碼器填入。
- 以 moment 為單位輸入開始與結束時間,兩個值都必須落在來源長度之內。開始必須大於或等於零,結束必須晚於開始,且剪輯後的長度至少為 0.1 秒。
- 選擇 Trim video,檢視工具回報的長度與大小,並透過瀏覽器的儲存對話框下載 WebM 檔案。
舉例而言,某個來源解碼後長度為 180.000 秒,若要求開始 = 12.500、結束 = 27.250,則會產生 27.250 − 12.500 = 14.750 秒的剪輯,遠高於 0.1 秒的下限,也完全在五分鐘上限之內。任何超出這些範圍的情況 — 負的開始時間、比開始更早的結束時間,或超過解碼長度的結束時間 — 都會在事先被拒絕,而不是被默默夾緊,因此您可以修正輸入,而不會拿到一段悄悄出錯的剪輯。
支援的輸入與硬性限制
上述管線仰賴瀏覽器能夠解碼該檔案,這就是為什麼工具在嘗試剪輯之前會先公開一組嚴格的硬性限制。觸發其中一項限制會產生明顯的失敗,而不是產生損毀的輸出。
| 限制 | 數值 | 觸發拒絕的原因 |
|---|---|---|
| 容器格式 | MP4、WebM、MOV、M4V、Ogg | 任何其他副檔名會在檔案選擇對話框中被拒絕 |
| 最大檔案大小 | 500 MiB | 更大的檔案無法載入媒體元素 |
| 解碼後長度 | 5 分鐘(300 秒) | 更長的解碼媒體無法進行剪輯 |
| 最大寬度或高度 | 4096 像素 | 超過此值解碼器會拒絕該檔案 |
| 最大總面積 | 3840 × 2160 像素 | 即使單邊符合,總像素數也必須符合 |
| 最小剪輯長度 | 0.1 秒 | 更短的要求會被視為使用者錯誤 |
| 開始值 | ≥ 0 秒 | 負的開始時間會被拒絕 |
熟悉的副檔名並不代表一定成功,這是最常見的混淆來源。瀏覽器必須支援容器內部實際的音訊與影片編解碼器 — 舉例來說,含有 HEVC 影片軌道的 .mp4 檔案,在僅配備 AVC 硬體加速的瀏覽器中可能無法解碼。這也正是 MDN 上 MediaRecorder 頁面將編解碼器支援列為各瀏覽器相容性矩陣,而非固定清單的原因。
為什麼輸出會以 WebM 形式回傳
瀏覽器端剪輯工具刻意不產生 MP4,這並非風格考量。瀏覽器的 MediaRecorder API 能以隨渲染引擎一同提供的 VP8、VP9 與 Opus 編解碼器原生編碼 WebM,因此工具不需要打包龐大的 JavaScript 媒體函式庫,也不必將檔案送往伺服器端編碼器。若要在瀏覽器中產生 MP4,必須使用 FFmpeg 的 WebAssembly 版本,或進行一次伺服器往返,兩者都牴觸在本機執行的初衷。
為了避免播放器將該檔案視為循環播放的來源,工具會修補 WebM 的 Segment Info,使容器回報使用者所要求的長度。相容的播放器隨後會顯示有限的時間軸與符合剪輯範圍的總長度,即使錄製的影格只涵蓋所要求的視窗。介面也會回報所要求的長度與輸出大小,讓您在儲存前能對結果進行合理性檢查。
線上瀏覽器剪輯工具無法做到的事
理解管線後,您會更容易尊重其限制。線上剪輯工具並非桌面非線性編輯器的替代品,有若干工作應交由其他工具處理。
- 影格精準剪輯:擷取的是播放時間的取樣,而非影格,最後一個編碼後的影格可能會落在所要求邊界附近的微小偏移。對於廣播交付、精確的關鍵影格剪輯或字幕保留,請使用專用的桌面編輯器。
- 受 DRM 保護的內容:該工具無法繞過 DRM、抓取遠端媒體,或去除第三方影片的浮水印。
- 多軌音訊與長片:五分鐘的解碼上限與單軌錄製模式,使大多數專業工作流程無法適用。
- 中繼資料保留:僅有尺寸保證會被保留。品質、關鍵影格、色彩中繼資料、音訊配置與檔案大小,在重新錄製後都可能與來源不同。
- 必須輸出 MP4:若您的下游工具或平台要求 MP4 容器內的 H.264 編解碼器,則需要使用桌面編碼器,而非瀏覽器端的錄製工具。
對於大多數短小的社群剪輯、示範錄製、教學片段與快速的支援影片,上述限制都不會造成妨礙。同一條瀏覽器管線也能產出足夠精準、可供分享的剪輯,這就是我們在我們的指南中說明比較的緣故 — 也就是 本機剪輯工具實際在準確度上能提供什麼。若您的來源影片可由您自行編輯、檔案符合上述限制、且目的地接受 WebM,那麼線上剪輯工具就是取得有限長度剪輯、且無需上傳原始檔案的最快方式。