HOME
CONTACT

Click Here Software Co

Creating computer software
Since 1983

ZoneMinder130 Home --> usage tips

ZoneMinder130 Usage Tips
Delete your cookies
Analysis FPS, Maximum FPS, and Alarm Maximum FPS
Upgrade from an existing ZoneMinder V1.29 or V1.30 installation
Run ZoneMinder130 on two drives
Limit how many days of recording you keep
View more than 5 or 6 cameras in the montage view
Watch many cameras in montage view without scrolling
Using 3-wide or 4-wide scaling in montage view
Using a mobile device
No sound when an alarm occurs
Camera image is stretched vertically
24 bit color vs 32 bit color

Delete your cookies

If you are installing ZoneMinder130 to a server and IP address that previously had another version of ZoneMinder on and also if you are acccessing it using a browser that you used before, the browser will be storing cookies for the other ZoneMinder installation at that location. It will try to use them with ZoneMinder130 and strange things can happen. I've noticed a couple of things that can happen. One is if you click on Options and then go to the Display tab and try to change the theme, it might keep reverting back to your previously selected theme once you click SAVE. Another strange thing that can happen is the Disable Alarms link in the live view won't work right.

Go to your browser's settings and delete the cookies for the site where you have installed ZoneMinder130.

Analysis FPS, Maximum FPS, and Alarm Maximum FPS

When creating a new Monitor for your camera, you have 3 FPS options, Analysis, Maximum, and Alarm Maximum. It is best to leave these options blank and ZoneMinder130 will use the FPS that is set by your camera. However, if your camera is running much faster than you would like your capture frames to run at, then set a value for each of these FPS settings. For instance, maybe your camera is running at 30fps and you only need to capture frames at 3fps, then put a 3 in each of these settings. Even though you can use 3 different values, it is actually best to make them all the same. If you are only using the camera for ZoneMinder130, see if you can log into your camera and change the actual FPS that it runs at. That is actually the best way to go. On my system, I set the cameras to operate at 10fps and then leave each of these settings blank.

Upgrade from an existing ZoneMinder V1.29 or V1.30 installation

It is actually best if you can start out fresh with a new Debian or Ubuntu installation and then set up the monitors for your cameras as well as the motion detecion zones. But, if you wish to try it, you can keep your current V1.29 or V1.30 database and events directory and still install ZoneMinder130. Read on to find out how.

Maybe you are like me and have kept on using ZoneMinder V1.29 or V1.30 because you really like how the original user interface worked. Now, you can upgrade your operating system and still keep the same look and feel of that original user interface. You can keep your existing database and events directory. But you will need to upgrade from Debian 8 or 9 to 11, 12, or 13. Or likewise, if using Ubuntu, upgrade it to 22.04 or 24.04. Maybe you will need to also upgrade the actual server hardware.

Start by backing up your database and the entire /var/cache/zoneminder directory. There are a number of ways to do this and everyone has a different system and means of backing up. So, I won't explain how to back up your directory and database. That is up to you to do.

Next, get your new server up and running with your choice of Debian or Ubuntu. I would choose the latest version that your hardware is able to run. For Debian, the current choice would be bookworm, Debian 12. That is the current stable release. However, if you want to run the yet unreleased trixie, Debian 13, feel free to do so. The version of ZoneMinder130 for Debian 13 runs just as good as it does on Debian 12. For Ubuntu, use 24.04 since 22.04 will keep getting older and older.

Now that you have a clean system up and running, don't install ZoneMinder130 yet, but get mariadb installed. For instance:


apt install mariadb-server mariadb-client

Then restore your database. Here again, you can find a lot of info on how to do this elsewhere. Also, copy your backed up events directory to your new machine. If something goes wrong while installing ZoneMinder130, you can always start over again because you still have your database and events directory backed up.

At this point, you should be ready to install ZoneMinder130. Just follow the instructions on the download page. The installation won't overwrite the events directory, nor will it overwrite the database. It will, however, update the database by making the changes needed by ZoneMinder130,

If you dont care about the events directory, just backup and restore your database. The database will still contain references to events that no longer exist, but that will be cleaned up as ZoneMinder130 runs. The most important reason for keeping your existing database is to prevent having to completely setup all of your cameras and motion detection zones. That could be a big task if you have a lot of cameras.

Run ZoneMinder130 on two drives

On my system, I use two drives. One is a small SD drive and is used for booting up the computer and also holds most of ZoneMinder130 as well as all the other software that is loaded that ZoneMinder uses. The other drive is a high capacity 14 TB hard drive for holding all of the event directories and files. This is where the "/var/cache/zoneminder" directory resides.

ZoneMinder has always expected to find the events directory located in /var/cache/zoneminder and so does ZoneMinder130. This is how it is coded and it is a little too complicated to change it. It is much easier to just keep things the way they are. You can always create symbolic links to point the events directory to somewhere else, but if it is on a different storage device, the disk usage that shows in the upper right corner of the console won't be accurate. But, by using a bind mount, this is possible to do while maintaining an accurate disk usage.

Start by getting ZoneMinder130 up and running. It will create the events directory at /var/cache/zoneminder and within this directory, it will create three more directories named events, images, and temp. From the ZoneMinder130 console shut down ZoneMinder130, or use systemctl to shut it down like so:


systemctl stop zoneminder130.service

If you don't already have your second drive installed and mounted, do so now. I created one large partition on the 14 TB hard drive. I then created a directory in the / directory and named it cams14tb and mounted the partition there. It can actually be mounted anywhere. I chose to mount mine just off the main root directory. The entry in my /etc/fstab file looks like this:


UUID=6cf2a411-ff7d-4f01-ae08-fffb54a7e34e /cams14tb ext4 defaults 0 0

If you are mounting the new drive partition manually and need to find out the UUID of the partition, use the blkid command.

Next, I create a directory in /cams14tb named zoneminder:


mkdir /cams14tb/zoneminder

And then I create the three directories inside the zoneminder directory:


mkdir /cams14tb/zoneminder/events
mkdir /cams14tb/zoneminder/images
mkdir /cams14tb/zoneminder/temp

Next, if you already have some events that you would like to keep, copy them from the current events directory to the new one. Do this before setting up the bind mount. Otherwise, once the bind mount is set up, you won't have access to them.


cp /var/cache/zoneminder/events/* /cams14tb/zoneminder/events/

Next, make sure all the files in the new zoneminder directory are owned by www-data:


chown -R www-data:www-data /cams14tb/zoneminder/

Now, we add a new line to the fstab file. This is what creates the bind mount to the new zoneminder directory.


/cams14tb/zoneminder /var/cache/zoneminder none defaults,bind 0 2

After a reboot, the zoneminder directory in the cams14tb drive will appear to be located at /var/cache/zoneminder. All the events will now be stored on the big 14TB hard drive. Anytime ZoneMinder130 is upgraded, it will not overwrite your zoneminder directory.

In my case, I have 13 cameras running all the time and using Mocord which means each one is recording 24 hours a day. With this 14TB hard drive, it is usually running right around 75% full. But, that is also while keeping 30 days worth of recording.

Limit how many days of recording you keep

ZoneMinder130 comes with a default filter that will prevent your storage drive from going past 95% full. That is a built in safeguard. But I also like to limit how many days of recordings are kept. In my case, I keep 30 days worth of recordings from 13 cameras and with a large 14TB drive, it stays right around 75% full all the time. It never goes near the 95% limit because I use a limit on the number of days. Anything past 30 days gets deleted. When I had a smaller 4TB drive, I limited it to about 7 days. I'll show you how to create your own filter for this. I will assume you have a much smaller drive, so this example will provide a limit of 5 days worth of recordings.

From the main console, click on FILTERS. A default filter will come up in the new window that you can modify to your liking. It will currently have one selection that will display all events less than now. That means it will display all events. Change the now to -5day. It is OK to not use a space between the -5 and day. Then click on the + sign to the right to add another item. Click on the menu where it says Monitor Id and select Archive Status. We do not want to delete any archived events. It will default to Unarchive Only, so leave it like that. Now check the box for "Delete all matches". Then click SAVE. Enter a name for this filter. I call mine CleanOld. Check the box for Run filter in background and then click SAVE. You will now have a filter that will run automatically and will delete events when they become 5 days old.

Keep an eye on the upper right corner of the console view to see how much disk space is used. If it runs too high such as 85%, you might want to consider reducing the number of days you keep. If the disk space remains low such as 40%, you can increase the number of days to keep.

View more than 5 or 6 cameras in the montage view

Most browsers refuse to make more than about 6 connections to a server at the same time. This makes using the montage view quite limited. Firefox can do it, but not my default. It is easy to make it work, though. In the address bar enter about:config. Ignore the Proceed With Caution message and just accept the risk. Then in the search field, enter the following:


network.http.max

You will see two settings that begin with the above string:


network.http.max-persistent-connections-per-proxy
network.http.max-persistent-connections-per-server

Change the value of each to 100. This will allow you to view quite a few cameras provided your hardware can handle it.

Watch many cameras in montage view without scrolling

Do you have too many cameras to view at the same time? Let's say you have 18 cameras and you cannot make them all fit on the montage screen without scaling them too small. Just click on Monitors in the upper left of the console and set up two or more groups of cameras. Then use multiple PC's to view each group of cameras just like the big boys do.

Using 3-wide or 4-wide scaling in montage view

In the montage view, the 3-wide and 4-wide scaling won't work right if you have the Scale set to anything other than Actual. It will try to scale a scaled image. Also, performance will suffer as you are scaling each frame twice. So, if you use 3-wide or 4-wide scaling, be sure to use Actual for the Scale.

Using a mobile device

It can be very handy to be able to access the full ZoneMinder130 while away from the desktop. That is where the cell phone comes in. A little tip is to use the flat theme when using a cell phone to access ZoneMinder130. That theme seems to work the best as far as configuring itself for a small screen. The new flat-bold and flat-bold-dark themes are best suited for larger screens. I have plans to create a mobile theme that will work nicely on small screen devices.

No sound when an alarm occurs

While viewing a live stream or in the montage view, if an alarm occurs and you do not hear a sound, you might have the alarm sound turned off in Options. Go to Options and under the Web tab, make sure the WEB_SOUND_ON_ALARM is checked. If all looks correct, it might be your browser blocking the audio. Some browsers feel as though it is annoying for a sound to play unless the user approves it. If this happens, any sort of interaction with the window will cause the browser to remove this block. You can click on any part of the window, even a blank area. The best thing to do is to click on the volume selection. This will not only remove the browser's block, but it will also play the alarm one time so you can hear how loud it is as well as knowing that it is working correctly.

Camera image is stretched vertically

Cameras such as Amcrest, Foscam and many others will provide the wrong resolution when selecting 640x480. The resolution is actually 640x360. So, all of your video streams will appear stretched vertically. Everything in the view will appear taller. In all these years, the camera manufacturers have not fixed this issue. However, in ZoneMinder130, it is a simple fix. In the console view, click on the SOURCE link for the desired camera. You are now in the Monitor editor. Go to the Source tab and change the Capture Height from 480 to 360 and then click SAVE. Your camera videos and images will all be in the correct resolution and aspect ratio now.

24 bit color vs 32 bit color

In the Monitor editor under the Source tab, you have the Target colorspace option. Some people might think that 32 bit color is better because it sounds like there are more colors available. This is not true. The additional 8 bits are used for transparency. Transparency is not used by ZoneMinder130 and so 32 bit color is meaningless. The only use for this option would be if you plan to use your captured videos for some other project and need to have transparency available. For all other users, I recommend selecting 24 bit color. You probably won't notice it, but you might get a slight performance improvement.