Зацикливание видео с помощью ffmpeg

2379
Ffmpeg fans

У меня есть два видео, одно из которых накладывается на другое. Тот, который наложен, длится всего несколько секунд, и я хочу, чтобы он продолжал зацикливаться, пока воспроизводится основное видео. Я перепробовал все, что мог придумать, но, похоже, ничего не работает вffmpeg

Loop video background - Пример:

  1. "main_video" долгое время 56:00:00
  2. "video_bg_overlay" долгое время 00:00:30

Как сделать авто-петлю "video_bg_overlay" по времени "main_video" ?

3
@ Mulvya: помоги мне, пожалуйста Ffmpeg fans 7 лет назад 0

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

3
Gyan

Параметр цикла в фильтре фильма не устанавливает новые временные метки для зацикленного расширения, поэтому это необходимо сделать вручную.

ffmpeg -i "main_video" -af "pan=stereo|c0=FL|c1=FR,volume=1.5" \ -vf "movie=video_bg_overlay.mp4:loop=0,setpts=N/FRAME_RATE/TB,hue=s=0[bg];[in]scale=iw/2:-1,pad=iw+20:ih+20:10:10:color=yellow[m]; [bg][m]overlay=shortest=1:x=(W-w)/2:y=(H-h)/2[out]" \ -c:v libx264 Out_video 
Использование `setpts = N / FRAME_RATE / TB` с фильтром фильма является ключевым здесь. В некоторых других примерах используется `setpts = PTS-STARTPTS`, который не работает с циклом. Quantum7 6 лет назад 0

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