Monitoring multiple IP cameras.
Using zoneminder's montage facility is great, but there's no denying it puts a lot of extra load on the server. If you're using IP cameras that can supply mjpeg feeds, this is totally unneccessary and by some simple html can be bypassed completely.
Both firefox and chrome will view mjpeg streams without plugins if they're enclosed in normal <img> tags.
Example: <img src = "http://10.0.0.112/Jpeg/CamImg.jpg" width="240" height="180" >
This will show a 240x180 picture from a Gadspot camera.
Another example, this time for an Axis camera and helping bandwidth by specifying a smaller image size in the first place: <img src = "http://10.0.0.102/axis-cgi/mjpg/video.cgi?resolution=320x240" width="240" height="180" >
Knowing this, you can easily build an html file with these image tags and lay them out as you wish, as many as you can fit on a screen. Save it in your web directories on your server, or even locally on your own computer, and once the html is loaded the server has no part to play in displaying the images and thus no extra load. Leave the server to get on with running zoneminder.
I've actually gone a step further with my system. I have a mysql database with the ips, names and mjpg paths for each camera make on my four sites. Users visit a cgi page which generates a table of images based on their choices - there's a menu along the top allowing them to choose different groups of cameras or view cameras from other sites. Each link visits the cgi script with different parameters which produce a different html file linking to each of the cameras. That's probably overkill for most users, but works well for me.
What if you don't have mjpeg-capable ip cameras, or a mixture? Or even some analogues too? Well you can use zoneminder to convert those inputs and produce an mjpeg stream using zms. Get a live image up on screen, then right-click the image and "Copy image location" - paste that inside an <img> tag and you've got a stream for that camera too. Of course, that does put load on the server, but if you've got a mixture allows you to move some off, and of course arrange to suit yourself. One of the feeds below is actually from a camera that only provides mpeg4 and I'm using a zm server to include it here. Works ok.
Pictures explain better, so:
(Pink bits conceal private information, and each img links to that camera directly, so that if you see movement and want a bigger picture, just click the corresponding image)