FFMPEG 將影片分割成範圍內的隨機持續時間

FFMPEG 將影片分割成範圍內的隨機持續時間

我想將影片分成幾部分,但不是相等的部分。

我希望每個剪輯的時長在 15 到 50 秒之間。但我希望每個剪輯的長度是隨機的(在 15 到 50 秒的範圍內)。

我如何在命令列中使用 ffmpeg 來執行此操作?

這是我用來將影片分成相等部分的命令

ffmpeg -i lutherceleb.mp4 -acodec copy -f segment -vcodec copy   -reset_timestamps 1 -map 0 OUTPUT%d.mp4

答案1

這有點 hacky,但您可以使用任何腳本語言(例如 Ruby)來產生隨機的分割時間清單。只需更改總持續時間(此處為 150),然後將該腳本的輸出指派給該選項-segment_times

$ times=$(ruby -e 's=[]; d=0; while d < 150 do t=rand(15..50); s << (d+t); d=d+t end; puts s.join(",")')
$ echo $times
15,53,96,124,168
$ ffmpeg -i lutherceleb.mp4 -f segment -segment_times $times -c copy -reset_timestamps 1 -map 0 OUTPUT%d.mp4

您可以縮短-acodec copy -vcodec copy-c copy.

相關內容