FFMPEG Divide o vídeo em durações aleatórias dentro do alcance

2

Eu quero dividir um vídeo em partes, mas não em partes iguais.

Eu quero que cada clipe tenha entre 15 e 50 segundos. Mas quero que cada duração do clipe seja aleatória (dentro desse intervalo de 15 a 50 segundos).

Como eu faria isso com o ffmpeg na linha de comando?

Este é o comando que eu estava usando para dividir um vídeo em partes iguais

ffmpeg -i lutherceleb.mp4 -acodec copy -f segment -vcodec copy   -reset_timestamps 1 -map 0 OUTPUT%d.mp4
    
por videoedit1 17.07.2015 / 07:02

1 resposta

1

Isso é um pouco hacky, mas você pode usar qualquer linguagem de script (por exemplo, Ruby) para gerar uma lista aleatória de tempos parciais. Basta alterar a duração total (150 aqui) e, em seguida, atribuir a saída desse script à opção -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

Você pode reduzir -acodec copy -vcodec copy para -c copy .

    
por 18.07.2015 / 10:19