使用 ffmpeg 將影片分割為 X 秒部分

使用 ffmpeg 將影片分割為 X 秒部分

我有一個時長為 1 分 35 秒的影片。我能夠將其分割成多個 30 秒的片段(我完全了解分割影片的其他方法,但出於特定原因選擇了這種方法)。然而,這會產生 3 個 30 秒的影片和一個 5 秒的影片。消除少於 15 秒的拖沓影片並附加到片段的最佳方法是什麼?

分割成段

ffmpeg -i test.mp4 -codec:v copy -codec:a copy -segment_time 30 test-%03d.mp4

期間

ffprobe -i test.mp4 -show_format -v quiet | grep '.=.'

答案1

ffmpeg 本身無法做到這一點。您必須自行計算各個片段的持續時間,因為無法指定最短持續時間。

為此,您可能需要對影片的總長度進行兩次迭代。在第一次運行中,確定線段的長度。如果您發現最後一個片段比 15 秒短,您只需調整第二個到最後一個片段的長度。這可以透過腳本語言輕鬆完成。

一旦你有了這個,你需要告訴segment復用器各個分段的持續時間:

-segment_times 0,30,60,80

相關內容