
Приведенный ниже код работает нормально, но мне не удается запустить масштабирование изображения в определенное время. То есть я хочу, чтобы масштабирование начиналось через 5 секунд, а не сразу после начала фонового видео.
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
решение1
Использовать
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
Поскольку вы применяете это к видео, pzoom — правильная переменная для использования. Ее d
следует установить на 1, поскольку она представляет собой длительность интервала эффекта масштабирования для каждогоиндивидуальныйframe. Обязательно используйте последнюю версию ffmpeg. В более ранних версиях была ошибка, из-за которой pzoom работал некорректно.