Com uma versão recente do ffmpeg, você pode usar o demuxer de concat. Crie um arquivo chamado inputs.txt contendo linhas como:
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'
file 'input4.mp4'
Com um shell bash, você pode usar um loop for para criar o arquivo da seguinte forma:
rm inputs.txt
for f in input{1..4}.mp4; do echo "file '$f'" >> inputs.txt; done
Então,
ffmpeg -f concat -i inputs.txt -c copy output.mp4
Como ele usa -c copy
, isso será completamente sem perdas.