FFMPEG-Bild zoomen auf eine Position XY

581
user293004

Ich muss auf einen bestimmten Punkt eines Bildes zoomen. Was muss ich in diesem vorhandenen Skript ändern, zum Beispiel Y: 81% X: 27%?

 ffmpeg -r 25 -i image.jpg -vf  "zoompan=z='zoom+0.001':x='if(gte(zoom,1.5),x,x+1)':y='y':d=125\" -y -shortest -c:v libx264 output.mp4 -y 

Bildbeispiel

1

1 Antwort auf die Frage

2
Gyan

Benutzen

ffmpeg -i image.jpg \ -vf "zoompan=z='min(zoom+0.01,2.5)':x='iw/2-iw*(1/2-27/100)*on/150-iw/zoom/2':y='ih/2-ih*(1/2-81/100)*on/150-ih/zoom/2':d=150" \ -c:v libx264 output.mp4 -y 

150ist die Dauer des Zooms (und des Films) und zoomt vom Mittelpunkt zum Zielpunkt. zoompanBei kurzen Animationen wird keine gleichmäßige Bewegung erzeugt. Erwägen Sie daher, die Länge zu erhöhen.

Scheint zu funktionieren, aber auch bei höherer Dauer nicht reibungslos. Ich habe versucht, alle "150" -Nummern mit 400 zu ändern, aber noch hässlicher als vorher :-( user293004 vor 5 Jahren 0
Sie haben "on / 150" in "on / 400" geändert? Gyan vor 5 Jahren 0
ja, wie Sie es beschrieben haben ... https://youtu.be/Qjn1LlLUZqM user293004 vor 5 Jahren 0
Ok, ich skaliere es einfach ohne Wackeleffekt: ffmpeg -i image.jpg -vf "scale = 8000: -1, zoompan = z = 'min (zoom + 0.0015,1.5)': x = 'iw / 2-iw * (1 / 2-88 / 100) * Ein / 150-iw / Zoom / 2 ': y =' ih / 2-ih * (1 / 2-94 / 100) * Ein / 150-ih / Zoom / 2 ': d = 150 "-c: v libx264 -t 5 -s" 800x450 "output.mp4 -y user293004 vor 5 Jahren 0