Масштабируйте видео, затем примените кадр изображения, используя ffmpeg

976
Wahyu Way

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

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

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

0

1 ответ на вопрос

3
Chamath

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

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 

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

Похожие вопросы