我想将视频分成几部分,但不将其分成相等的部分。
我希望每个剪辑的时长在 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
。