I only have a handful of cameras and our needs are pretty simple so the Unifi Video cameras are what I went with and so far they do everything we want. For our welcome desk I wanted a fixed matrix of cameras that would be pretty much one touch and go - no dependency on a computer.
The Ubiquity NVR will rebroadcast cameras as RTSP streams - which a lot of other video solutions will do as well.
If your video solution will let you view your cameras via RTSP then just grab a Raspberry Pi and use the script in this thread: https://community.ubnt.com/t5/UniFi-Video/Tutorial-RTSP-Raspberry-Pi-B-Viewer-6-Cam-4-Cam/td-p/1536448
It’s a drop-dead simple way to turn a Raspberry Pi into a video matrix viewer. Somewhere in the middle of that thread someone created a really nice caluclator where you put in the resolution of your display and how many cameras you want and it divides the screen up and gives you the screen coordinates to use for each of the omxplayer lines that display each camera.
It may look a little daunting reading the first post, but if you step through it the process really isn’t that bad.
I’ve since used the same script to show just one camera from our sanctuary in the cry room, and I’m getting ready to deploy another one for the nursery workers to see the sanctuary also - it’s pretty versitile.
I have the Pi’s teamed up with old monitors - I just got some inexpensive HDMI (from the Pi) to DVI (on the monitor) cables - they work perfectly (monoprice.com to the rescue once again). If you are using TVs for your camera displays then regular HDMI cables work fine.
You can’t beat the price! If you wanted to rotate between different matrixes you could extend the script to loop and sleep between alternate matrix screen views. Lots of possibilities. What I really like about the script is it will automatically re-connect streams that drop for whatever reason - it sometimes happens.