FFMPEG Teilen Sie Videos in zufällige Zeiträume innerhalb eines Bereichs auf

FFMPEG Teilen Sie Videos in zufällige Zeiträume innerhalb eines Bereichs auf

Ich möchte ein Video in Teile aufteilen, aber nicht in gleich große Teile.

Ich möchte, dass jeder Clip zwischen 15 und 50 Sekunden lang ist. Aber ich möchte, dass die Länge jedes Clips zufällig ist (innerhalb dieses Bereichs von 15 bis 50 Sekunden).

Wie würde ich dies mit ffmpeg in der Befehlszeile machen?

Dies ist der Befehl, den ich zum Aufteilen eines Videos in gleiche Teile verwendet habe

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

Antwort1

Das ist ein bisschen umständlich, aber Sie können jede Skriptsprache (z. B. Ruby) verwenden, um eine zufällige Liste von Zwischenzeiten zu generieren. Ändern Sie einfach die Gesamtdauer (hier 150) und weisen Sie die Ausgabe dieses Skripts der Option zu-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

Sie können abkürzen -acodec copy -vcodec copyauf -c copy.

verwandte Informationen