Bildüberlagerung und gleichzeitiges Anwenden von Audio (FFMPEG)

Bildüberlagerung und gleichzeitiges Anwenden von Audio (FFMPEG)

Ich möchte mit einem einzigen Befehl eine Bildüberlagerung mit Überblendeffekt zu einem bestimmten Zeitpunkt im Video sowie Hintergrundaudio auf das Video anwenden. Das Video wird außerdem auf nur 15 Sekunden begrenzt sein.

Derzeit kann ich dies mit zwei Befehlen erreichen, die wiederum zwei Ausgaben erzeugen würden. Wie kann ich diese beiden Befehle zusammenführen?

Erster Befehl

ffmpeg -i video.mp4 -loop 1 -i image.png -ss 00:00:00 -t 00:00:15 -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; [0][i]overlay=main_w/2-overlay_w/2-0+0:main_h/2-overlay_h/2-0+0:shortest=1"  incomplete.mp4

Zweites Kommando

ffmpeg -i audio.mp3 -i incomplete.mp4 -shortest finalVideo.mp4

Dies ist mein Versuch, die beiden Befehle zu einem einzigen Befehl zusammenzuführen. Das Video ist jetzt jedoch nicht mehr auf 15 Sekunden begrenzt und der Hintergrundton gilt nach Tests mit mehreren MP4-Videos nur für wenige Videos.

ffmpeg -i video.mp4 -loop 1 -i image.png -ss 00:00:00 -t 00:00:15 -i audio.mp3 -shortest -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; [0][i]overlay=main_w/2-overlay_w/2-0+0:main_h/2-overlay_h/2-0+0:shortest=1"  finalVideo.mp4

Antwort1

Verwenden

ffmpeg -ss 00:00:00 -t 00:00:15 -i video.mp4 -loop 1 -i image.png -i audio.mp3
  -filter_complex "[1]format=yuva420p,fade=in:st=12:d=0.5:alpha=1[i]; 
                   [0][i]overlay=main_w/2-overlay_w/2:main_h/2-overlay_h/2:shortest=1[v]"
  -map "[v]" -map 2:a -shortest  incomplete.mp4

In ffmpeg ist die Platzierung der Optionen wichtig. Jede Option vor einer Eingabe gilt nur für diese Eingabe. In Ihrem versuchten kombinierten Befehl geben Sie das Audio nach den Zeitspezifikationen ein, sodass diese nur für die Audioeingabe spezifisch sind.

FFmpeg verwendet ein Zuordnungssystem, um zu entscheiden, welche Streams in die Ausgabe aufgenommen werden. Wenn keine Zuordnungszuweisungen explizit festgelegt sind, wählt die Standardzuordnung ein Audio aus den Eingängen aus. Anscheinend hatten einige Ihrer MP4s Audiostreams, die gegenüber den MP3s priorisiert wurden. Mit expliziten Zuweisungen wird das nicht passieren.

verwandte Informationen