FFmpeg now has a crossfade filter, released in version 4.3.
ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "xfade=offset=4.5:duration=1" output.mp4
And similarly, there's an audio version.
ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "xfade=offset=4.5:duration=1;acrossfade=offset=4.5:duration=1"duration=1;acrossfade=duration=1" output.mp4