2016-07-28 36 views
1

Ich frage mich, wie Sie die Option "Einblenden" in der "Filter" -Komplex "Overlay" hinzufügen.Wie füge ich innerhalb von Overlay mit FFMPEG ein?

Der Grund Overlay

ffmpeg -i movie.mp4 -i image.jpg -c:v libx264 -filter_complex 'overlay=x=main_w-overlay_w-100:y=main_h-overlay_h-100' output.mp4

Hat den image.jpg verblasst = in in filter_complex so sein sollte?

ffmpeg -i movie.mp4 -i image.jpg -c:v libx264 -filter_complex 'fade=in:st=0:d=5:alpha=1, overlay=x=main_w-overlay_w-100:y=main_h-overlay_h-100' output.mp4

Vielen Dank für Ihre Hilfe bei der Konstruktion des -filter_complex Parameter!

Antwort

3

Verwenden

ffmpeg -i movie.mp4 -loop 1 -i image.jpg -filter_complex 
     "[1]format=yuva420p,fade=in:st=0:d=5:alpha=1[i]; 
     [0][i]overlay=W-w-100:H-h-100:shortest=1" 
-c:v libx264 output.mp4 

Ihre Fade-Filter auf dem Alphakanal zu betreiben gesetzt ist, aber JPEGs alpha nicht hat, so muss das Bild auf ein Pixel-Format umgewandelt werden, das tut. Außerdem ist FFmpeg ein zeitbasierter Prozessor von Streams und ein einzelnes Bild wird bei 25 fps als ein Frame behandelt, also 0,04 s lang, also habe ich eine Schleife hinzugefügt, um daraus einen Videostream zu erzeugen, der für die Überblendung benötigt wird wirksam werden.

Der Overlay-Filter nimmt zwei Eingänge auf, also habe ich alle Pads für das explizite Routing zugewiesen. Da das Bild unbegrenzt geloopt wird, wird die kürzeste hinzugefügt, um das Overlay zu beenden, wenn das Hauptvideo endet.