ZoneMinder

closeHey, just so you know ... this post is now about 3 years and 4 months old. Please keep that in mind as it very well may contain broken links and/or outdated information.

Last summer, my mini-tech project was installing some wireless internet cameras inside and outside the house so I could keep tabs on things while I was away. For the past year I’d just been using the built-in features of each of the cameras (motion detection, e-mail alerts, etc.) which was hit-or-miss since each manufacturer offered different features, some better implemented than others, and none of them perfect.

This setup was fine, but I wanted to be able to better manage the system and maybe even store more history of events (or “live” video) without having it be all e-mail messages with static image attachments. That’s what prompted me to search for open source camera management software, and I that’s how I found ZoneMinder.

ZoneMinder is intended for use in single or multi-camera video security applications, including commercial or home CCTV, theft prevention and child, family member or home monitoring and other domestic care scenarios such as nanny cam installations. It supports capture, analysis, recording, and monitoring of video data coming from one or more video or network cameras attached to a Linux system.

ZM is free (although the author accepts donations, which I’ve done) and runs on my home Linux server. Setting it up was relatively straightforward, but tinkering with all of the cool features to tweak the system just the way I wanted it took some time. You add each of your network cameras to the ZM Console and configure the various settings so the ZoneMinder processes can access the video stream URL of the camera.

It has a bunch of presets for popular cameras, and even supports some basic PTZ functions (although I was unable to get this to work with my TRENDnet units). Each camera can be set to a different function like monitor (video stream only), modect (motion detection), record (continuous recording), mocord (continuous recording plus motion detection), etc. Once you have the cameras added to the console you can create motion zones and add any event notifications.

At a high level, what ZM does is capture the video stream from the camera (at whatever frame rate you specify) as a series of still images and then performs image analysis/processing (with configurable levels of sensitivity) to determine if motion has been detected in the areas you specify. I love that you can create multiple custom-sized detection areas and even have “preclusive” zones to prevent constant triggers by changing light levels, moving plants, etc. Since the still images are all stored on your server, ZoneMinder can “play” them back in quick succession giving you a video of the event without actually storing encoded video (although you can generate a video file with ffmpeg if you want).

All of ZoneMinder’s configuration and logged information is stored in a MySQL database, and the images are stored on local disk (I’m using an old 1TB eSATA drive that used to be connected to one of my TiVos so I’ve got plenty of space). Since ZM is doing all of the “work” I’m no longer limited to the features of each manufacturer’s camera like the lack of time-stamping or NAS storage with the Foscams, or the limit of two square motion detection zones on the TRENDnet models. ZM does, however, put a heavier load on the network (it’s constantly pulling images from the cameras) and on the server (there’s a separate Linux process for each camera monitor plus another process for each camera that has motion detection enabled), so that’s something to keep in mind.

Before switching to ZoneMinder, I used eyeCam on my iPhone to check on my cameras which worked very well, but now use eyeZM which is basically an iOS interface to your ZoneMinder console. The app lets you view real-time video feeds, switch monitor functions (i.e., turn motion detection on or off), and examine archived events. Unfortunately it’s not a universal binary so you have to purchase the iPhone and iPad apps separately.

For more details on ZoneMinder, check out the very detailed wiki.

18 Comments

  1. Hi Windracer,
    What you’ve done with Zoneminder is very interesting. I’m thinking of purchasing a Foscam FI8904W and using Zoneminder to monitor the camera. I will initially have just one camera monitoring the front door of my house. How do you find the FI8904W camera. They seem like quite good value but are let down by the basic firmware (from reports I’ve read) thus the need for something like Zoneminder. I plan to install my camera alongside a PIR activated 230 watt light. In darkness if any motion is detected by the PIR the light will turn on. Do you think that having the camera monitor an area where a outside light will turn on automaticlly at night will upset the camera e.g. cause white out of the picture, or will the camera automatically adjust the exposure to provide an image that is useable?

    Best regards,
    Zug,
    Ireland.

    • I like the Foscam, and you can read more about my experiences with it here. Yes, the firmware is deficient, but ZoneMinder definitely has helped in that area. As for your motion-activated light, unless the light is pointing into the lens, I think you’re fine. One of my cameras is on the front porch which has a light on a timer and I haven’t noticed any exposure problems as it turns on and off. Of course, that’s just a 60W bulb and not a 230W lamp, so your mileage my vary. The camera will do automatic exposure correction, although it’s slow so you could miss the cause of the motion by the time the camera adjusts for the lighting change. Good luck!

  2. Thanks for the reply. Time for me to start reading the zoneminder documentation on the wiki. I’ll be installing it on CentOS 5.6. As the camera isn’t overly expensive it’s worth a try. I’ve been looking at the Foscam FI8905W and FI8904W. On http://www.foscam.co.uk the cheaper FI8904W has a 67 deg viewing angle whereas the more expensive FI8905W has a 42 deg viewing angle. I think 67 deg viewing angle is more useful, so will probably get that one.

    Best Rgds,
    Zug

  3. >”Let me know how it goes once you get everything up and running!”
    Will do. It will be a little while before I get it set up, as I’ve a few other projects on the go at present.

  4. Pingback: REAL Z-Wave | Z-Wave World

  5. I have been using zoneminder for about 2 years now….. What settings did you get this to work with i have tried everything but the correct ones.

    Name	                      Front door
    Source Type	              Remote
    Function	              dont matter but i have it modect
    Enabled                       yes	
    Linked Monitors 	      all
    Maximum FPS	              5
    Alarm Maximum FPS	      5
    Reference Image Blend %ge     7
    Triggers                      none
    
    
    Remote Protocol	              HTTP
    Remote Method	              Simple
    Remote Host Name	      192.168.1.50
    Remote Host Port	      80
    Remote Host Path	      /videostream.cgi?user=user&pwd=
    Remote Image Colours	      24 bit
    Capture Width (pixels)	      320
    Capture Height (pixels)	      240
    Preserve Aspect Ratio	      no
    Orientation                   normal

    all i get is a black screen

    I have tried username:password@
    i have tried /videostream.cgi
    i have tried a lot of different things and i cant seam to get this to work any ideas?

    • I think I need more information. You say you’ve been using ZM for two years … so did it just stop working? Or are you trying to add a new camera?

      My remote path is “/videostream.cgi?user=[username]&pwd=[password]” (replacing [username] and [password] with your own values for the camera). The only other difference in my setup versus what you posted is I left the Maximum FPS and Alarm Maximum FPS values (on the General tab) blank.

  6. I am adding this camera it a new one I got it to work. it not “/videostream.cgi?user=[username]&pwd=[password]”

    but what does work for me is /videostream.cgi?user=admin&pwd=&resolution=8&rate=6

    I needed to add the resolution and the FPM rate not it works thanks for your help

  7. Awesomeposts…thanks very much. From reading your Foscam and Zoneminder posts you mention that Zoneminder will allow for storage on a NAS. I have a FI8904 and a DLINK DNS 320. My question is, by using Zoneminder ahd having my camera set to record at motion detect, can I send the vidoe to my NAS without my computer being turned on. As previously mentioned in te various posts, usingthe Foscam software you need to have your computer always on. Thanks for any insight and help!

    • You would still need a Linux server running ZoneMinder on all the time, however. That server would have your NAS mapped as a storage share and then ZoneMinder would save the captured motion events on the NAS. Unless you’re able to hack the NAS device and got ZoneMinder to run on it directly, but that probably wouldn’t be ideal since ZoneMinder needs a good chunk of CPU power for image capture and analysis.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>