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 copy
auf -c copy
.