FFMPEG将视频分割为范围内的随机持续时间


2

我想将视频分成几部分,但不是相等的部分。

我希望每个剪辑在15到50秒之间。但我希望每个剪辑长度是随机的(在15到50秒的范围内)。

我如何在命令行中使用ffmpeg执行此操作?

这是我用来将视频分成相等部分的命令

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

2
哪个shell?Bash,Windows命令提示符,PowerShell,还是什么?解决方案可能取决于您正在使用的shell。
Larssend 2015年

mac terminal是我正在使用的命令行
videoedit1 2015年

Answers:


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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.