影片剪裁

搬影格而不是重壓影格的剪裁 —— 而且會告訴你它真正從哪裡開始。

本機處理

把檔案拖進來,或點擊選擇

支援 MP4, MOV, M4V, MKV, WebM。沒有大小上限,不用註冊。

選一個檔案,這一頁會先把裡面的軌讀出來給你看 —— 編碼、長度、關鍵影格間隔 —— 然後才動手寫檔。全程沒有任何東西被上傳。

    選一個起點與一個終點,這個工具會寫出一個新檔案,裡面只有這兩點之間的影格,而且是以它們現有的壓縮形式直接搬過去的。沒有解碼、沒有重新編碼,所以從 720p 片段剪 6 秒大約 29 毫秒就完成,畫面跟原本位元組相同。代價很具體,而且我們會講出來而不是藏起來:起點會被移到最近的關鍵影格。

    為什麼剪不到你指定的那個位置

    壓縮後的影片不是每一格都存一張畫面。它偶爾存一張完整的影格 —— 關鍵影格,也叫 I-frame —— 然後中間那些只存「跟附近的影格差多少」。那一段中間的某一格單獨拿出來是沒有意義的,它是一份「拿一張你必須已經有的畫面來修改」的指令。

    所以一個「保留位元組」的剪裁必須從關鍵影格開始。如果你要 4.0 秒,而 4.0 秒之前最近的關鍵影格在 3.0 秒,結果就是從 3.0 秒開始。硬從 4.0 秒開始的話,你會得到第一秒的灰色方塊與拖影 —— 那就是那些「叫它剪哪裡就剪哪裡、什麼都不說」的工具產生的東西。

    這一頁會找出你選的位置之前那個關鍵影格、在你按下按鈕之前就把實際落點顯示給你、並且在結果上再寫一次。差多少完全取決於那支錄影:每秒一個關鍵影格的話誤差最多一秒,但手機錄影常常是兩到四秒才一個,那個差別就很明顯了。檔案資訊區會顯示你這支檔案實測的關鍵影格間隔,所以你是知道而不是猜。

    另一條路的代價

    逐格精確的剪裁做得到,但只能靠重新編碼:從關鍵影格解碼到你選的那一格、把開頭那一小段重新壓一次、再接上後面沒動過的部分。那會給你精確的起點,代價很大。我們的實測是:同一個剪裁走搬 packet 的路徑約 29 毫秒,走函式庫那條會重新編碼的高階路徑約 912 毫秒 —— 6 秒的片段就慢了大約三十倍,而且它會隨長度成長,所以長片會從「瞬間」變成「好幾分鐘」。

    它也要付畫質。重新編碼開頭那一段意味著它跟影片其餘部分不再一致,而且損失是永久的。而大家剪片的多數理由 —— 把開頭的空白剪掉、去掉手忙腳亂找停止鍵的那一段、讓片段符合長度限制 —— 起點早了不到一個關鍵影格根本不構成問題。

    我們沒有做逐格精確的版本,而且我們寧願說出來也不要偷偷做。一個為了命中你給的數字而靜默重新編碼的工具,是代替你做了一個很大的決定,並且用畫質向你收費。如果你需要精確到影格,剪輯軟體才是對的器械。

    結尾會怎樣,聲音會怎樣

    終點沒有同樣的限制,因為影片可以停在任何一格。你選的時間之前的內容都會被包含進去,所以結果會停在它前面最後一個完整影格。把終點欄位留著不動,你就會拿到「從起點到檔案結束」的全部,那正是你只想剪掉開頭時要的。

    音訊會從同一個位置跟著剪。音訊影格很短 —— 每個大約二十毫秒 —— 所以音訊的起點會比影片的起點更接近你要求的時間。之後在檔案需要的時候,兩條軌會被位移同樣的量,讓畫面與聲音之間的關係跟來源裡完全一樣。這件事做錯正是「剪過的片段聲音有點跑掉」的經典原因,而且它細微到隨便檢查是查不出來的。

    旋轉資訊會保留,所以直拍的影片維持直的。如果你的檔案有多條音訊軌,第一條會被留下,而頁面會告訴你它留下了什麼。

    不上傳、沒有上限,以及怎麼查

    檔案是在這個瀏覽器分頁裡被讀取、剪裁、寫出的。沒有東西要上傳,所以沒有需要繞過的大小上限、不排隊、不加浮水印、不用註冊。那不是我們大方 —— 而是運算發生在你的裝置上時對我們沒有成本,所以沒有東西需要配給。

    要查的話,打開開發者工具、切到 Network 分頁、剪一段。你的影片不在任何一筆請求裡。這個網站送出的 Content-Security-Policy 標頭把連線限制在我們自己的來源,所以瀏覽器自己就會擋掉任何送出的嘗試。而第一次造訪之後,這一頁完全沒有網路也能用。

    真正的限制是記憶體:輸出是在分頁裡組起來的,所以要預留它的大小加上一百多 MB 的工作空間。桌機上輸入約 500 MB 是舒服的,手機砍半。剪裁在這件事上是幫忙的,因為輸出只有你留下來的那一段那麼大。超過建議值時頁面會先警告,而不是讓分頁毫無解釋地失敗。

    常見問題

    為什麼剪出來比我要的早?

    因為剪裁必須從關鍵影格開始,而你指定的時間之前最近的那一個更早。頁面會在你執行前就把落點顯示出來,結果上也會再寫一次。要精確從你那一格開始,必須重新編碼開頭那一段。

    最多會早多少?

    最多一個關鍵影格間隔,而檔案資訊區會為你這支影片實測那個值。輸出過的影片通常一秒左右;手機錄影常常是兩到四秒。

    畫質會變差嗎?

    不會。你保留的影格是以現有的壓縮形式搬過去的,跟來源位元組完全相同。

    可以把中間剪掉、把前後接起來嗎?

    這裡不行。這個工具保留的是一段連續的影格。把中間拿掉再接起來的話,接點也必須落在關鍵影格上,那是另一個工具。

    聲音還會對得上嗎?

    會。兩條軌從同一個位置剪,容器需要的時候一起位移,所以畫面與聲音之間的偏移被完整保住。

    可以剪哪些格式?

    MP4、MOV、M4V、MKV、WebM,內容常見的是 H.264、HEVC 與 AAC。輸出一律是 MP4。