Wie lege ich eine Startzeit für einen Zoompan-Filter fest, der einen Videohintergrund in ffmpeg überlagert?

Wie lege ich eine Startzeit für einen Zoompan-Filter fest, der einen Videohintergrund in ffmpeg überlagert?

Der folgende Code funktioniert einwandfrei, aber ich schaffe es nicht, den Bildzoom zu einem bestimmten Zeitpunkt zu starten. Ich möchte beispielsweise, dass der Zoom nach 5 Sekunden wirksam wird und nicht sofort, wenn das Hintergrundvideo startet.

ffmpeg  -i background.avi  -i image.png \
-filter_complex "1:v]scale=8000x4000,setsar=1/1,zoompan=z='min(zoom+0.005,10)':d=125:s=530x680,trim=duration=3[v1];[0:v][v1]overlay=20:20" \
-c:v libx264 output.avi

Antwort1

Verwenden

ffmpeg  -i background.avi -loop 1 -i image.png \
  -filter_complex 
       "[1:v]scale=8000x4000,setsar=1/1,zoompan=z='if(gte(in,125),min(pzoom+0.005,10),1)':d=1:s=530x680,
            trim=duration=3[v1];[0:v][v1]overlay=20:20"
  -c:v libx264 output.avi

Da Sie dies auf ein Video anwenden, ist pzoom die richtige Variable. dsollte auf 1 gesetzt werden, da es die Dauer des Zoomeffektintervalls für jedenIndividuellRahmen. Stellen Sie sicher, dass Sie eine aktuelle ffmpeg-Version verwenden. In früheren Versionen gab es einen Fehler, bei dem pzoom nicht richtig funktionierte.

verwandte Informationen