Добавление повторного фонового звука с помощью ffmpeg

С ffmpeg я вижу, как добавить музыкальный файл в качестве фона для видео, но проблема заключается в том, как сделать аудио-цикл/повтор. Есть ли выход?

Ответ 1

ffmpeg имеет многообещающий флаг -loop_input, но пока не поддерживает аудиовходы.

Я бы порекомендовал sox и опцию -shortest для ffmpeg в качестве решения.

sox short_audio.mp3 looped_audio.mp3 repeat 1000 # adjust count as necessary
ffmpeg -i input_video.mp4 -i looped_audio.mp3 -shortest output_video.mp4

Команда sox зациклит ввод, а команда ffmpeg будет использовать его для аудио, но остановится, когда закончится видео для обработки.

Ответ 2

Я столкнулся с той же проблемой и сумел сделать это с помощью фильтров ffmpeg и concat [enate]. Вот пример того, как сделать это три раза:

ffmpeg -i audio.wav -filter_complex "[0:a]afifo[a0];[0:a]afifo[a1];[0:a]afifo[a2];[a0][a1][a2]concat=n=3:v=0:a=1[a]" -map "[a]" out.wav