Ok, mit dem Overlay-Filter kann man also die x/y-Position eines Videos im Laufe der Zeit ändern, indem man die Variable "t" verwendet. Zum Beispiel overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
kann verwendet werden, um ein überlagertes Element von links oben nach rechts oben zu verschieben, nachdem 2 Sekunden vergangen sind.
Ich möchte ein ähnliches Prinzip zum Skalieren von Elementen verwenden. Ich möchte in der Lage sein, den Maßstab eines Videos im Laufe der Zeit zu ändern, indem ich einen Ausdruck (wie, scale=w=iw*t
, oder etwas in dieser Richtung) verwende.
Ist das möglich?
Wenn ich diesen Ausdruck durch -filter_complex laufen lasse, bekomme ich
Fehler beim Auswerten des Ausdrucks 'iw*t'.
Vielleicht ist der Ausdruck für out_w:'iw*t' oder für out_h:'-1' selbstreferenzierend.
Ich habe das Gefühl, dass es eine faire Chance gibt, dass ich FFMpeg patchen muss, wenn ich diese Funktionalität erhalten möchte, aber ich dachte, ich würde zuerst fragen, um zu sehen, ob jemand etwas über diese Art von Dingen weiß!
Weiß jemand, wie eine solche Aufgabe gelöst werden könnte?
Danke für die Hilfe!
Soweit ich weiß, wird 't' einmal ausgewertet. Hast du das gelesen: https://ffmpeg.org/ffmpeg-filters.html#zoompan ?
Ffmpeg-Dokumente:
9.170.1 Beispiele
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom, 1.5),y,y+1)':s=640x360
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/ Zoom/2)'
Timonku
theophilus777
Timonku
*t
?theophilus777
v010dya
theophilus777
denjello
Peter Kordes
t
, andere nicht. Die Neubewertung des Ausdrucks und die Neukonfiguration des Filters für jeden Frame ist für einige Filter teuer, daher nehme ich an, dass sie es deshalb nicht tun.Vitalii Obideiko
Gyan
Macindows
Gyan
Macindows
Macindows
Gyan
Gyan