Wrong concat
You're using the wrong concat (protocol, filter, and demuxer). You should use the filter or the demuxer, but in your case I recommend the filter since you're filtering and re-encoding anyway.
As mentioned in the wiki link you provided:
While the demuxer works at the stream level, the concat protocol works at the file level. Only certain files (mpg and mpeg transport streams, possibly others) can be concatenated with the concat protocol. This is analogous to using cat on UNIX-like systems or copy on Windows.
Example concat filter command
ffmpeg -i input0.mp4 -i input1.mp4 -i input2.mp4 -filter_complex \
"[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=2a]concat=n=3:v=1:a=1[v0][a0]; \
[v0]scale=960:-2,format=yuv420p[v]; \
[a0]volume=2[a]" \
-map "[v]" -map "[a]" \
-c:v libx264 -crf 22 -c:a libvorbis -q:a 5 output.mkv
Use
-2
instead of-1
when outputting H.264 with YUV 4:2:0 chroma sub-sampling. See scale docs for more info.No need to use
-x264-params
to set the crf. See FFmpeg Wiki: H.264 Encoding Guide.