Back to article
Using Linux ZoneMinder For Video Surveillance
Installing and Setting Up ZoneMinder
January 11, 2011
If you're looking to setup video surveillance, Linux can help! ZoneMinder is the most popular open source video surveillance server. It runs on any Linux distribution and supports USB and network cameras. Remote pan/tilt/zoom controls are even supported. It features a web-based GUI and mobile phone access for configuring, viewing, and replaying video feeds. It supports multiple users and user access levels, along with several different languages.
ZoneMinder is built with C++, Perl and PHP. It makes use of MySQL databases and its GUI is served via Apache. It is highly configurable to maximum performance on any hardware.
ZoneMinder supports live video in MPEG video, multi-part JPEG, and stills formats. You can define multiple zones or regions of interest for each video feed, giving them a different detection sensitivity. Events can be defined by your desired characteristics. Then event notifications with attached images, or video can be sent by email or SMS and archived by an FTP upload. Bi-directional support for the home automation protocol X.10 is included, which can control motion detection capture.
First you should select a PC to use. It's best to dedicate a whole machine to ZoneMinder, installing onto an existing Linux distribution or installing on a fresh install. However, you could install ZoneMinder on a Linux machine you use day-to-day or even in Windows via a VMware or Virtual PC machine. There aren't any real system requirements set by ZoneMinder. An older Pentium with 512MB of RAM should work for most smaller deployments. You'll want at least a CD-ROM, hard drive, and network adapter. Once you have your machine put together, make sure to connect it to your network.
Next you want to make sure you have cameras supported by ZoneMinder; you can check the list here.
Before installing ZoneMinder, it's a good idea to get the cameras installed as video devices and working in Linux. You might have to check the manufacturers documentation or do some Google-ing to find drivers and installation steps.
To list the USB devices (and their vendor IDs) connected to your Linux machine, open a terminal and enter the following command:
To list video devices:
You can test the cameras by downloading a capturing program like xawtv and then get setting details with the following command:
Once you have your cameras in working order, install zoneminder and mythzoneminder using the package manager of your distribution. Be sure to install all their dependencies, including MySQL and Apache. During the installation you should be prompted to configure your MySQL password. You can refer to the ZoneMinder documentation to manually build if it isn't in your distribution's repositories or install with fresh Linux distribution. You should see if there are any distribution-specific guides or notes available.