
Ich erstelle ein Video aus Bildern, die unterschiedliche Größen und Ausrichtungen haben. Tatsächlich muss ich Animationen für Videofolien basierend auf der Bildausrichtung (Seitenverhältnis) erstellen. Nehmen wir also an, ich habe 4 Bilder mit den folgenden Größen:
1.jpg 1280x1600 (von oben nach unten)
2.jpg 1280x1600 (unten nach oben)
3.jpg 1280x1600 ( Von oben nach unten )
4.jpg 1280x1280 (Kein Effekt)
Hier ist dasFFmpegBefehl, den ich ausführe
ffmpeg -y -r 25 \
-loop 1 -t 5 -i 1.jpg \
-loop 1 -t 5 -i 2.jpg \
-loop 1 -t 5 -i 3.jpg \
-loop 1 -t 5 -i 4.jpg \
-i audio.mp3 \
-filter_complex " \
[0]crop=1280:1280:ow:((ih-oh)/5)*t,format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+0/TB[f0];
[1]crop=1280:1280:ow:(ih-oh)-((ih-oh)*t/5),format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+4/TB[f1];
[2]crop=1280:1280:ow:((ih-oh)/5)*t,format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+8/TB[f2];
[3]fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+12/TB[f3];
[0][f0]overlay[bg1];[bg1][f1]overlay[bg2];[bg2][f2]overlay[bg3];[bg3][f3]overlay,format=yuv420p[v]" -map "[v]" -map 4:a -b:v 4000k -movflags +faststart -t 20 -s 1280x1280 out.mp4
Bitte schauen Sie sich die ersten Sekunden des Videos an
Die Überblendung, das Zuschneiden und der Effekt funktionieren also, aber wie Sie sehen, bleibt ein unnötiger Abschnitt am unteren Rand des Videos erhalten. Alle anderen Animationen werden im obigen Abschnitt angezeigt.
Ich bin mir nicht sicher, aber es scheint, als ob die Höhe des ersten Bildes (1600) erhalten bleibt. Ich freue mich auf jeden Vorschlag zur Behebung dieses Problems.
Antwort1
Verwenden Sie diexverblassenFilter:
ffmpeg \
-loop 1 -t 5 -i cyan.jpg \
-loop 1 -t 5 -i magenta.jpg \
-loop 1 -t 5 -i yellow.jpg \
-loop 1 -t 5 -i black.jpg \
-i audio.mp4
-filter_complex \
"[0]crop=1280:1280[v1]; \
[1]crop=1280:1280[v2]; \
[2]crop=1280:1280[v3]; \
[3]crop=1280:1280[v4]; \
[v1][v2]xfade=wipedown:duration=1:offset=4[x1]; \
[x1][v3]xfade=wipeup:duration=1:offset=8[x2]; \
[x2][v4]xfade=wipedown:duration=1:offset=12,format=yuv420p[v]" \
-map "[v]" -map 4:a -movflags +faststart -shortest output.mp4
Eine Galerie aller Übergänge finden Sie unterFFmpeg Wiki: xfade.