Вы можете попробовать это.
ffmpeg -i input_video -loop 1 -i input_image -t video_duration -filter_complex "[0:v]scale=iw*80/100:ih*80/100[vo];[1:v][vo]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,setpts=PTS-STARTPTS[outv]" -c:v libx264 -map [outv] output_video
Здесь вы должны использовать filter_complex
и map
для наложения и масштабирования и т.д. 0:v
относится к входному видео, его ширина и высота масштабируются до 80% от исходного. 1:v
относится к входному изображению и накладывается на масштабированное видео в центр изображения. loop
зацикливает изображение на протяжении всего видео, а -t
ограничивает длительность выходного видео секундами, которые вы хотите.
Если вам нужно оригинальное аудио, доступное в выходном видео, используйте -map 0:a
перед указанием выходного файла.
ffmpeg -i input_video -loop 1 -i input_image -t video_duration -filter_complex "[0:v]scale=iw*80/100:ih*80/100[vo];[1:v][vo]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,setpts=PTS-STARTPTS[outv]" -c:v libx264 -map [outv] -map 0:a -c:a copy output_video
Надеюсь, что это поможет вам!