FFMPEG Fractionner la vidéo en durées aléatoires dans la plage

2

Je veux diviser une vidéo en parties, mais pas en parties égales.

Je veux que chaque clip dure entre 15 et 50 secondes. Mais je veux que chaque longueur de clip soit aléatoire (dans cette plage de 15 à 50 secondes).

Comment ferais-je cela avec ffmpeg en ligne de commande?

C’est la commande que j’utilisais pour diviser une vidéo en parties égales.

ffmpeg -i lutherceleb.mp4 -acodec copy -f segment -vcodec copy   -reset_timestamps 1 -map 0 OUTPUT%d.mp4
videoedit1
la source
2
Pour quelle coquille? Bash, invite de commande Windows, PowerShell ou quoi? La solution peut dépendre du shell que vous utilisez.
Larssend
terminal mac est la ligne de commande que
j'utilise

Réponses:

1

C'est un peu compliqué, mais vous pouvez utiliser n'importe quel langage de script (par exemple, Ruby) pour générer une liste aléatoire de temps intermédiaires. Il suffit de changer la durée totale (150 ici), puis d’affecter la sortie de ce script à l’option-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

Vous pouvez raccourcir -acodec copy -vcodec copyà -c copy.

slhck
la source