2

Я хочу разбить видео на части, но не на равные части.

Я хочу, чтобы каждый клип длился от 15 до 50 секунд. Но я хочу, чтобы длина каждого клипа была случайной (в пределах этого диапазона от 15 до 50 секунд).

Как бы я сделал это с ffmpeg в командной строке?

Это команда, которую я использовал для разделения видео на равные части

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

1 ответ1

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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .