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

Это немного хакерски, но вы можете использовать любой скриптовый язык (например, 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.

Связанный контент