Concatenate multiple WAV files using single command, without extra file


I want to concatenate multiple WAV files into a single WAV file using FFMPEG.

I have used the following command and it generates the required file.


ffmpeg -f concat -i mylist.txt -c copy output.wav

File :

file '1.wav'
file '2.wav'
file '3.wav'
file '4.wav'

But as you can see the problem is that I have to create a text file to specify the list of WAV files to concatenate.

I can do all these tasks, but I would prefer a single command something that looks like

ffmpeg -i 1.wav -i 2.wav -i 3.wav -i 4.wav output.wav 


ffmpeg -i "concat:1.wav|2.wav|3.wav|4.wav" -c copy output.wav

I have tried these two simple commands but they return just the voice of 1.wav
Please help me write a single command( or correct the above 2 commands ) that achieves the desired result.

Please don't suggest other Media Encoders/Editors, I want to use FFMPEG only, as it is already installed and used at other places.

Best Answer

You could try using the concat filter; it requires re-encoding, and so will take more system resources (a pretty tiny amount on any vaguely modern computer in this particular case), but PCM -> PCM audio should be mathematically lossless. In your case, you would use something like:

ffmpeg -i input1.wav -i input2.wav -i input3.wav -i input4.wav \
-filter_complex '[0:0][1:0][2:0][3:0]concat=n=4:v=0:a=1[out]' \
-map '[out]' output.wav

If you have five input files, use n=5.

Related Question