У меня есть кадр изображения 1920x1080 и видео с одинаковым разрешением.

Я хочу изменить размер видео на 80% от его разрешения и отцентрировать его, а затем наложить его на рамку изображения. Итак, окончательный результат видео 1920x1080

Как я могу это сделать?

1 ответ1

3

Вы можете попробовать это.

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

Надеюсь, что это поможет вам!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .