Was ich machen will; was ich vorhabe zu tun:
Ich habe x Bilder png / jpg, und ich möchte sie für eine unterschiedliche Dauer zeigen, einige länger und einige kürzer.
- a1.jpg Das erste Foto bleibt 3 Sekunden lang
- a2.png bleibt 10 Sekunden lang
- a3.jpg bleibt bis zum Ende des Audios
Video sollte so lang sein wie audio.mp3
Dies ist mein Code so weit nach dem Lesen der Dokumentation, nicht sicher, was falsch ist, ich bekomme beschädigtes Video ohne Ton und nur das letzte Bild.
Möchte auch Bilder zentrieren, wenn möglich.
ffmpeg -y \
-loop 1 -t 1 -i a1.jpg \
-loop 1 -t 1 -i a2.jpg \
-loop 1 -t 4 -i a3.jpg \
-loop 1 -t 1 -i a4.png \
-loop 1 -t 1 -i a5.png \
-i audio.mp3 \
-c:v libx264 -pix_fmt yuv420p -c:a copy video.mp4
Versuchen
ffmpeg -y -framerate 15 \
-loop 1 -t 1 -i a1.jpg \
-loop 1 -t 1 -i a2.jpg \
-loop 1 -t 4 -i a3.jpg \
-loop 1 -t 1 -i a4.png \
-loop 1 -t 1 -i a5.png \
-i audio.mp3 \
-c:v libx264 -pix_fmt yuv420p -c:a copy \
-filter_complex " \
[0]setdar=16/9[a1],[a1]scale=720x406[a];[1]setdar=16/9[b1],[b1]scale=720x406[b];[2]setdar=16/9[c1],[c1]scale=720x406[c];[3]setdar=16/9[d1],[d1]scale=720x406[d];[4]setdar=16/9[e1],[e1]scale=720x406[e];
[a][b][c][d][e]concat=n=5,format=yuv420p[v],[v]scale=720x406[v1],[v1]setdar=16/9[v2]" \
-map "[v2]" -c:a copy out.mp4
quelle