Масштабируйте видео, затем примените кадр изображения, используя ffmpeg
У меня есть кадр изображения 1920x1080 и видео с одинаковым разрешением.
Я хочу изменить размер видео на 80% от его разрешения и отцентрировать его, а затем наложить его на рамку изображения. Итак, окончательный результат видео 1920x1080
Как я могу это сделать?
1 ответ
Вы можете попробовать это.
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
Надеюсь, что это поможет вам!