adding repeated background audio with ffmpeg

I ran into the same problem and managed to do it by using ffmpeg and concat[enate] filter. Here is an example of how to loop it three times:

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

Edited (23/12/2020)

In addition to the above, another super easy 2 methods :

1st method : with audio output SIZE defined.

meaning : it will repeat / concatenate "MyAudio.mp3" till it reaches size of 10M and stop ( you will need to calculate end size yourself )

ffmpeg -stream_loop -1 -i "MyAudio.mp3" -fs 10M -c copy "MyRepeatingAudio.mp4"

2nd method : with NO output SIZE defined ( you will need to stop process, CTRL+C once it reaches required size

ffmpeg -stream_loop -1 -i "MyAudio.mp3" -c copy "MyRepeatingAudio.mp4"

Please note that above methods are also for REPEATING VIDEOS

3rd-party edit (15/09/2021)

This command adds repeating audio to a video in a single step:

ffmpeg -i input.mp4 -stream_loop -1 -i audio.mp4 -shortest \
    -map 0:v:0 -map 1:a:0 -c:v copy output.mp4

ffmpeg has the promising -loop_input flag, but it doesn't support audio inputs yet.

I'd recommend sox and the -shortest option for ffmpeg as a solution.

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

The sox command will loop the input, and the ffmpeg command will use it for the audio, but stop when it runs out of video to process.

Tags:

Audio

Ffmpeg