← 部落格

如何使用 FFmpeg 剪切視頻:時間戳、時長、分割(2026 指南)

學習如何使用 FFmpeg 以精確的時間戳和時長控制來剪切、裁剪和分割視頻。包含快速複製模式、重新編碼以及免費的一鍵替代方案。

3 min read

需要從長影片中擷取30秒的片段?刪除錄影的前10秒?將影片分割成多個部分?FFmpeg 可以透過命令列完成所有這些操作——只要你知道正確的參數。

本指南涵蓋所有剪輯情境及精確的命令。如果你更想直接拖拉滑桿操作,文末還有一個免費的視覺化替代方案


前置準備:安裝 FFmpeg

FFmpeg

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt update && sudo apt install ffmpeg

Windows:ffmpeg.org 下載,解壓縮後將 bin 資料夾加入 PATH。


基本剪輯

依起始時間與持續時長剪輯

從第1分鐘開始擷取30秒:

ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c copy output.mp4
  • -ss 00:01:00 — 從第1分鐘開始
  • -t 00:00:30 — 持續時長30秒
  • -c copy — 直接複製串流,不重新編碼(速度快)

依起始與結束時間剪輯

擷取 1:00 到 2:30 的片段:

ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:30 -c copy output.mp4
  • -to 00:02:30 — 在2分30秒處停止

剪取前 N 秒

只保留前60秒:

ffmpeg -i input.mp4 -t 60 -c copy output.mp4

移除前 N 秒

跳過前10秒:

ffmpeg -i input.mp4 -ss 10 -c copy output.mp4

剪去最後 N 秒

這需要知道影片的總時長。對於一個5分鐘的影片,若要移除最後30秒:

ffmpeg -i input.mp4 -t 00:04:30 -c copy output.mp4

快速複製 vs 重新編碼

快速模式(-c copy

ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c copy output.mp4

優點: 速度極快,不損失品質 缺點: 起始點可能偏差幾秒(會對齊最近的關鍵幀)

精確模式(重新編碼)

ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c:v libx264 -c:a aac output.mp4

優點: 可精確到幀的剪輯 缺點: 速度較慢,重新編碼會造成些微品質損失

兩者兼顧:輸入端定位 + 輸出端重新編碼

ffmpeg -ss 00:00:58 -i input.mp4 -ss 2 -t 30 -c:v libx264 -c:a aac output.mp4

此方式在解碼前先定位到0:58(速度快),再精確地往後裁切2秒,以精確到達1:00的位置。


將影片分割成多個部分

分割成等長片段

將10分鐘的影片分割成2分鐘的片段:

ffmpeg -i input.mp4 -c copy -map 0 -segment_time 120 -f segment -reset_timestamps 1 segment_%03d.mp4

這將產生 segment_000.mp4segment_001.mp4 等檔案。

依指定時間點分割

# 第1段:0:00 到 2:00
ffmpeg -i input.mp4 -ss 0 -to 00:02:00 -c copy part1.mp4

# 第2段:2:00 到 5:00
ffmpeg -i input.mp4 -ss 00:02:00 -to 00:05:00 -c copy part2.mp4

# 第3段:5:00 到結尾
ffmpeg -i input.mp4 -ss 00:05:00 -c copy part3.mp4

擷取與移除音訊

僅擷取音軌

ffmpeg -i input.mp4 -vn -c:a copy audio.m4a
  • -vn — 不含視訊

擷取為 MP3

ffmpeg -i input.mp4 -vn -c:a libmp3lame -b:a 320k audio.mp3

移除音訊(僅保留視訊)

ffmpeg -i input.mp4 -an -c:v copy output_silent.mp4
  • -an — 不含音訊

常見錯誤與解決方式

剪輯後的影片開頭出現靜止畫面或畫面異常

這是使用 -c copy 時,剪切點不在關鍵幀上所導致的。解決方式是重新編碼:

ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c:v libx264 -c:a aac output.mp4

剪輯後音視訊不同步

加入 -avoid_negative_ts make_zero

ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c copy -avoid_negative_ts make_zero output.mp4

出現「Non-monotonous DTS」警告

這通常不影響輸出結果,但表示時間戳記有問題。若輸出檔案損毀,請嘗試:

ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -fflags +genpts -c copy output.mp4

剪輯位置偏差數秒

-ss 放在 -i 之前可加快定位速度,放在 -i 之後則更精確:

# 較快但精確度較低(在輸入端定位)
ffmpeg -ss 00:01:00 -i input.mp4 -t 30 -c copy output.mp4

# 較慢但精確到幀(解碼後再定位)
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c:v libx264 -c:a aac output.mp4

跳過終端機:改用 WaveSpeed Desktop

使用 FFmpeg 進行精確的影片剪輯,意味著你需要應對時間戳記格式、關鍵幀對齊、複製模式與重新編碼的選擇,以及同步問題。對大多數人來說,這遠比實際需要的複雜。

WaveSpeed Desktop 內建媒體剪輯工具,提供視覺化時間軸:

  • 拖放你的影片
  • 使用視覺化滑桿設定起始與結束點
  • 點擊剪輯——完成

無需計算時間戳記。無需煩惱關鍵幀。不用開終端機。

WaveSpeed Desktop Media Trimmer

免費下載 WaveSpeed Desktop: https://github.com/WaveSpeedAI/wavespeed-desktop/releases


常見問題

-t-to 有什麼差別? -t 指定持續時長(例如 -t 30 表示30秒)。-to 指定結束時間戳記(例如 -to 00:02:30 表示在2:30停止)。

我可以在不損失品質的情況下剪輯嗎? 可以——使用 -c copy 即可避免重新編碼。代價是剪切點可能不精確到幀(會對齊最近的關鍵幀)。

如何找出影片的確切時長?

ffprobe -v error -show_entries format=duration -of csv=p=0 input.mp4

我可以同時剪輯多個檔案嗎? 無法在單一命令中完成。你需要使用 shell 迴圈處理每個檔案。WaveSpeed Desktop 支援拖放式批次剪輯。