Как установить время начала для фильтра масштабирования, который накладывается на видеофон в ffmpeg?

Как установить время начала для фильтра масштабирования, который накладывается на видеофон в ffmpeg?

Приведенный ниже код работает нормально, но мне не удается запустить масштабирование изображения в определенное время. То есть я хочу, чтобы масштабирование начиналось через 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 работал некорректно.

Связанный контент