Habe 5 Videos in einem Verzeichnis:
01.mp4, 02.mp4 ... 05.mp4
Ich will die via melt in der Konsole zu einem Video zusammenmontieren.
01.mp4 soll von schwarz eingeblendet u. mit 02 überblendet werden. 02 soll mit 3, 3 mit 4 u. 4 mit 5 überblendet werden. 05.mp4 soll nach schwarz ausgeblendet werden.
Programmaufruf ist:
melt colour:black out=20 01.mp4 -mix 20 -mixer luma 02.mp4 -mix 20 -mixer luma 03.mp4 -mix 20 -mixer luma 04.mp4 -mix 20 -mixer luma 05.mp4 -mix 20 -mixer luma colour:black out=20 -mix 20 -mixer luma
Im Ergebnis dann vom Prinzip her so:
https://imgur.com/KST2gXTIch würde das gerne in ein Script oder in einen alias packen.
Challenge: Das soll auch bei einer unbekannten Anzahl von Videos funktionieren.
Ansatz:
Alle Dateinamen in ein array schreiben:
files=($(\ls *.mp4))
Den ersten und letzten Dateinamen (für das Ein-/Ausblenden von/nach schwarz) kann ich referenzieren
Erster: echo ${files[0]}
Letzter: echo ${files[-1]}
Wie realisiere ich den Mittelteil, also Überblendung von 1 nach 2, 2 nach 2, ... vorletztes zu letztem?
Irgendwas mit Schleifen vermutlich, wobei beim Abrufen der Werte aus dem Array der Index um jeweils 1 hochgezählt werden müsste, bis der letzte Wert erreicht ist.
Fängt also an mit
melt colour:black out=20 ${files[0]} -mix 20 -mixer luma
dann die Schleife die so was erzeugt:
${files[1]} -mix 20 -mixer luma ${files[2]} -mix 20 -mixer luma ${files[2]} -mix 20 -mixer luma usw.
Endet mit colour:black out=20 -mix 20 -mixer luma
Wer kann mir bezüglich der gesuchten Schleife helfen?