Мне нужна команда для наложения видео в указанное время

#ffmpeg

#ffmpeg

Вопрос:

У меня есть два видео, одно длинное видео (основное) и другое длиной 6 секунд (bg). Я хочу накладывать bg поверх main через каждые 20 секунд.

Я пробую несколько способов, но после запуска bg видео останавливается или, если оно может быть запущено, оно показывает bg только один раз и больше не повторяется.

 ffmpeg -y -i "{input}.*" -stream_loop -1 -i bg.mp4 -filter_complex "[0:v]scale=1280:720[v0];[1:v]scale=1280:720[v1];[v0][v1]overlay=enable='lt(mod(t,20),6)':shortest=1" -vcodec libx264 -pix_fmt yuv420p -b:v 3000k -acodec libmp3lame -b:a 128k -ar 44100 -r 20 -ac 2 -threads 0 -shortest -preset superfast "{output}.mp4"
 

Пожалуйста, помогите мне.

Спасибо.

Комментарии:

1. Лучший способ сделать это — создать новый файл bg.mp4 длиной 20 секунд. Затем используйте наложение с enable='lt(mod(t,20),6)'

2. Спасибо. Я сделал, как вы указали, но bg запускает только первые 6 секунд, через 20 секунд он воспроизводится только как изображение, больше не воспроизводится как видео.

3. Добавьте -stream_loop -1 перед новым вводом bg. А также добавьте shortest=1 к наложению.

4. Это идеально. Спасибо.