FFmpeg-Overlay-Bild auf Video mit Fade-Effekt

1064
AM25

Haben Sie einige Zweifel, die auf den ffmpeg-Befehl folgen -
ffmpeg -f concat -i input.txt -loop 1 -t 8 -i inputImg.jpg -filter_complex "[1]format=rgba,fade=alpha=1:st=0:d=8,setpts=PTS+10/TB[v1];[0][v1]overlay=x=70:y=100:enable='between(t,2,10)'" -crf 22 -threads 2 -preset ultrafast output.mp4

1 Auswirkung der Schleife auf die Leistung, wenn ich sie nicht zur Verfügung stelle -t 8und nur shortest=1im Überlagerungsfilter verwende - wird ein Video mit unendlicher Dauer erstellt und nur während der Überlagerung des kürzesten überlagert?

2- Was bedeutet setptstun? - Ich erwähnte -t 8- so läuft es 8 Sekunden lang. Wenn ich 'setpts = PTS + 10 / TB' mache, erhöht sich das Video in einer Schleife auf eine Dauer von 18 Sekunden, wobei der Einblendeffekt von 10 Sekunden auf 18 Sekunden reicht. Was gibt es von 0 bis 10 Sekunden im geschlungenen Video?

3- wie 2 Videos überlagert werden - werden beide Videos ab 0. Sekunde zusammengefügt?

4- Wenn ich einen Überblendeffekt auf ein Bild anwenden möchte, das etwa 100. Sekunde in meinem Video eingeblendet wird, muss ich dann ein 100-Sekunden-Video erstellen? - Wie wirkt sich das auf die Leistung aus?

5- Kann frame_no von main_video [0] in looped_video [1] verwendet werden?

Gibt es eine leistungsoptimierte Methode / Alternative, um den Fade-Effekt auf ein Bild anzuwenden, basierend auf frame_sequence, z. B. fade_in, aus Frame 30-35?

0

1 Antwort auf die Frage

0
Gyan

In Ordnung,

1 - Auswirkung der Schleife auf die Leistung, wenn ich -t 8 nicht zur Verfügung stelle und nur den kürzesten Wert = 1 im Overlay-Filter verwende - wird ein Video mit unendlicher Dauer erstellt und nur während das kürzeste überlagert ausgewählt wird?

Theoretisch ja. Derzeit gibt es jedoch einen Fehler shortest=1, also verwenden Sie ihn nicht.

2- Was machen Setpts?

Es ändert Zeitstempel. In Ihrem Befehl werden den Zeitstempeln 10 Sekunden hinzugefügt, sodass der erzeugte Stream des Bildes die ersten Zeitstempel von 10 Sekunden hat.

3- wie 2 Videos überlagert werden - werden beide Videos ab 0. Sekunde zusammengefügt?

Frames mit entsprechenden Zeitstempeln werden überlagert, dh ein Frame mit einem PTS von 10 Sekunden wird dem Basisvideoframe mit einem PTS von 10 Sekunden überlagert.

4- Wenn ich einen Überblendeffekt auf ein Bild anwenden möchte, das etwa 100. Sekunde in meinem Video eingeblendet wird, muss ich dann ein 100-Sekunden-Video erstellen? - Wie wirkt sich das auf die Leistung aus?

Nein. Die Dauer sollte sein, wie lange das Video angezeigt werden soll. Verwenden Sie Setpts, um die Startzeit zu verschieben.

5- Kann frame_no von main_video [0] in looped_video [1] verwendet werden?

Der enableSwitch verwendet die Frame- / Zeitstempel des Hauptvideos.

Gibt es eine leistungsoptimierte Methode / Alternative, um den Fade-Effekt auf ein Bild anzuwenden, basierend auf frame_sequence, z. B. fade_in, aus Frame 30-35?

Nein, genauso wie Sie es verwenden. Sie können die Variablen, die sich auf die Bildanzahl beziehen, zum Einstellen von Beginn sund Dauer verwendenn

Ans 2 - also beeinflussen 'Setpts` die Dauer nicht - es werden nur Zeitstempel geändert? Ans 5 - was ich meinte, war frame_no von stream [0] (das aus der input.txt gelesen wird), während der Fade ausgewertet wird (um die `setpts` dynamisch zu berechnen - ich möchte enable verwenden (n, 30, 35) im Overlay-Filter und dementsprechend die Setpts für Fade berechnen)? AM25 vor 7 Jahren 0
Ans 6 - Verwendete diesen Befehl - ffmpeg -f concat -i input.txt -loop 1 -t 1 -i inputImg.jpg -filter_complex "[1] format = rgba, fade = alpha = 1: s = 0: n = 9, Setpts = PTS + 0 / TB [v1]; [0] [v1] Überlagerung = x = 70: y = 100: enable = 'zwischen (n, 0,9)' '- crf 22 - Threads 2 - Preset ultrafast output.mp4 '- aber in `s` und` n` in `fade` beziehen sich wahrscheinlich auf Frames von stream [1] (das looped_video) und nicht stream [0] (main_video aus input.txt lesen) - das o / Kommandos, die hier geteilt werden, und eines in der Frage sind unterschiedlich. AM25 vor 7 Jahren 0
* frame_no von stream [0] (das aus der input.txt gelesen wird) wird verwendet, um die Überblendung auszuwerten (um die Setpts dynamisch zu berechnen * -> nicht möglich. `setpts` referenziert den Stream, mit dem er arbeitet. Gyan vor 7 Jahren 0