ZoneMinder is a free application for monitoring CCTV cameras. It's even in the Ubuntu repositories, making things really easy. It's even in the Ubuntu repositories, making things really easy. It does, however, have a somewhat bare-bones user interface, which is perfectly usable once things are running, but can make setup a little daunting.
Having followed the Installation Guide Jw org bible mp3. for your distribution you should now be able to load the ZoneMinder web frontend. By default this will be with the Classic skin, below is an example of the page you should now see.
ZoneMinder is a free, open source Closed-circuit television software application developed for Linux which supports IP, USB and Analog cameras. Zoneminder is an excellent suite of CCTV applications for theLinux Operating System. Zoneminder can be used for home security,commercial CCTV systems, animal watch, baby minder applications, remote monitoring and much more. Our Zoneminder range of capture cards are specially selected and approved for use with Zoneminder. Zoneminder compatible DVR capture cards and IP cameras, Linux supported video capture cards webcams and other hardware at discount prices for Zoneminder users. Supported IP cameras. TinyCam Monitor for Android supports all major vendors (350+) of network/IP cameras, DVRs/NVRs, and more than 10,000 ONVIF Profile S compatible cameras including cheap Chinese cameras. Internal Android camera (front and back) is also supported to use the app as an IP camera or dashcam. The list is constantly updated.
Setting Timezone¶
Previous versions of ZoneMinder required the user to set up Timezone correctly in php.ini
. This is no longer the case. Starting 1.34, ZoneMinder allows you to specify the TimeZone in the UI. Please make sure it is set up correctly. The Timezone can be changed by selecting Options->System->Timezone
Enabling Authentication¶
We strongly recommend enabling authentication right away. There are some situations where certain users don't enable authentication, such as instances where the server is in a LAN not directly exposed to the Internet, and is only accessible via VPN etc., but in most cases, authentication should be enabled. So let's do that right away.
- Click on the Options link on the top bar of the web interface
- You will now be presented with a sidebar full of options. Click on the 'System' link
- The relevant portions to change are marked in red above
- Enable OPT_USE_AUTH - this automatically switches to authentication mode with a default user (more on that later)
- Select a random string for AUTH_HASH_SECRET - this is used to make the authentication logic more secure, soplease generate your own string and make sure it is sufficiently randomized and long. Note that if you plan to use APIs with ZoneMinder (needed by zmNinja/other apps), it is mandatory that you have this field populated
- The other options highlighed above should already be set, but if not, please make sure they are
- Note that if you are planning to use zmNinja and plan to use ZM authentication, you must also:
- set
AUTH_RELAY
to hashed - Enable
AUTH_HASH_LOGINS
- set
- Click on Save at the bottom and that's it! The next time you refresh that page, you will now be presented with a login screen. Job well done!
Understanding the Web Console¶
Before we proceed, lets spend a few minutes understanding the key functions of the web console.For the sake of illustration, we are going to use a populated zoneminder configuration with several monitors and events.
This screen is called the 'console' screen in ZoneMinder and shows a summary of your monitors, associated events and more information.
- A: The options menu lets you configure many aspects of ZoneMinder. Refer to Options.
- B: This brings up a color coded log window that shows various system and component level logs. This window is useful if you are trying to diagnose issues. Refer to Logging.
- C: ZoneMinder allows you to group monitors gor logical separation. This option lets you create new groups, associate monitors to them and edit/delete existing groups.
- D: Filters are a powerful mechanism to perform actions when certain conditions are met. ZoneMinder comes with some preset filters that keep a tab of disk space and others. Many users create their own filters for more advanced actions like sending emails when certain events occur and more. Refer to Filtering Events.
- E: The Cycle option allows you to rotate between live views of each cofigured monitor.
- F: The Montage option shows a collage of your monitors. You can customize them including moving them around.
- G: Montage Review allows you to simultaneously view past events for different monitors. Note that this is a very resource intensive page and its performance will vary based on your system capabilities.
- H: Audit Events Report is more of a power user feature. This option looks for recording gaps in events and recording issues in mp4 files.
- I: This is the user you are currently logged in as.
- J: ZoneMinder allows you to maintain 'run states'. If you click on the 'Running' text, ZoneMinder brings up a popup that allows you to define additional 'states' (referred to as runstates). A runstate is essentially a snapshot that records the state of each monitor and you can switch between states easily. For example, you might have a run state defined that switches all monitors to 'monitor' mode in which they are not recording anything while another state that sets some of the monitors to 'modect'. Why would you want this? A great example is to disable recording when you are at home and enable when you are away, based on time of day or other triggers. You can switch states by selecting an appropriate state manually, or do it automatically via cron jobs, for example. An example of using cron to automatically switch is provided in the FAQ. More esoteric examples of switching run states based on phone location can be found here.
Here is an example of multiple run states that I've defined. Each one of these runstates changes the mode of specific monitors depending on time of day and other conditions. Use your imagination to decide which conditions require state changes.
- K: This line shows you system health information
- L: This defines how Zoneminder will record events. There are various modes. In brief Modect record if a motion is detected,Record = always record 24x7, Mocord = always record PLUS detect motion, Monitor = just provide a live view but don't record anytime, Nodect = Don't record till an external entity via zmtrigger tells Zoneminder to (this is advanced usage).
- M: This is the 'source' column that tells you the type of the camera - if its an IP camera, a USB camera or more. In this example, they are all IP cameras. Green means the monitor is running. Red means there is something wrong with that camera.
- N: This is the core of ZoneMinder - recording events. It gives you a count of how many events were recorded over the hour, day, week, month.
- O: These are the 'Zones'. Zones are areas within the camera that you mark as ‘hotspots' for motion detection. Simply put, when you first configure your monitors (cameras), by default Zoneminder uses the entire field of view of the camera to detect motion. You may not want this. You may want to create 'zones' specifically for detecting motion and ignore others. For example, lets consider a room with a fan that spins. You surely don't want to consider the fan moving continuously a reason for triggering a record? Probably not - in that case, you'd leave the fan out while making your zones.
- P: This is a 'visual filter' which lets you ‘filter' the console display based on text you enter. While this may not be particularly useful for small systems, ZoneMinder is also used in mega-installations will well over 200+ cameras and this visual filter helps reduce the monitors you are seeing at one time.
Adding Monitors¶
Now that we have a basic understanding of the web console, lets go about adding a new camera (monitor). For this example, lets assume we have an IP camera that streams RTSP at LAN IP address 192.168.1.33.
The first thing we will need to know is how to access that camera's video feed. You will need to consult your camera's manual or check their forum. Zoneminder community users also have a frequently updated list right here that lists information about many cameras. If you don't find your list there and can't seem to find it elsewhere, feel free to register and ask in the user forums.
The camera we are using as an example here is a Foscam 9831W which is a 1280x960 RTSP camera, and the URL to access it's feed is username:password@IPADDRESS:PORT/videoMain
Let's get started:
Click on the 'Add' button below:
This brings up the new monitor window:
- We've given it a name of ‘Garage', because, well, its better than Monitor-1 and this is my Garage camera.
- There are various source types. As a brief introduction you'd want to use ‘Local' if your camera is physically attached to your ZM server (like a USB camera, for example), and one of ‘Remote', ‘FFMpeg', ‘Libvlc' or ‘cURL' for a remote camera (not necessarily, but usually). For this example, let's go with ‘FFMpeg'.
Note
As a thumb rule, if you have a camera accessible via IP and it does HTTP or RTSP,start with FFMpeg first and libvlc if it doesn't work (Defining Monitorscovers other modes in more details). If you are wondering what ‘File' does, well, ZoneMinder wasbuilt with compatibility in mind. Take a look at this post to see how file can be used for leisure reading.
- In this example, the Function is ‘Modect', which means it will start recording if motion is detected on that camera feed. The parameters for what constitutes motion detected is specific in Defining Zones
- In Analysis FPS, we've put in 5FPS here. Note that you should not put an FPS that is greater than the camera FPS. In my case, 5FPS is sufficient for my needs
Note
Leave Maximum FPS and Alarm Maximum FPS empty if you are configuring an IP camera. In older versions of ZoneMinder, you were encouraged to put a value here, but that is no longer recommended. Infact, if you see your feed going much slower than the feed is supposed to go, or you get a lot of buffering/display issues, make sure this is empty. If you need to control camera FPS, please do it directly on the camera (via its own web interface, for example)
- We are done for the General tab. Let's move to the next tab
- Let's select a protocol of RTSP and a remote method of RTP/RTSP (this is an RTSP camera)
- Note that starting ZM 1.34, GPUs are supported. In my case, I have an NVIDIA GeForce GTX1050i. These
cuda
andcuvid
parameters are what my system supports to use the NVIDIA hardware decoder and GPU resources. If you don't have a GPU, or don't know how to configure your ffmpeg to support it, leave it empty for now. In future, we will add a section on how to set up a GPU
NOTE: It is entirely possible that cuda
and cuvid
don't work for you and you need different values. Isaac uses cuda
in DecoderHWAccelName
and leaves DecoderHWAccelDevice
empty. Try that too.
That's pretty much it. Click on Save. We are not going to explore the other tabs in this simple guide.
You now have a configured monitor:
And then, finally, to see if everything works, if you click on the garage monitor you just added, you should be able to see its live feed. If you don't, inspect your webserver logs and your ZoneMinder logs to see what is going on.
Switching to another theme¶
Todo
Fix theme text after I clearly understand that System->CSS is doing
When you first install ZoneMinder, you see is what is called a 'classic' skin. Zoneminder has a host of configuration options that you can customize over time. This guide is meant to get you started the easiest possible way, so we will not go into all the details. However, it is worthwhile to note that Zoneminder also has a ‘flat' theme that depending on your preferences may look more modern. So let's use that as an example of introducing you to the Options menu
- Click on the Options link on the top right of the web interface in the image above
- This will bring you to the options window as shown below. Click on the 'System' tab and then select the'flat' option for CSS_DEFAULT as shown below
Todo
Fix theme text after I clearly understand that System->CSS is doing
When you first install ZoneMinder, you see is what is called a 'classic' skin. Zoneminder has a host of configuration options that you can customize over time. This guide is meant to get you started the easiest possible way, so we will not go into all the details. However, it is worthwhile to note that Zoneminder also has a ‘flat' theme that depending on your preferences may look more modern. So let's use that as an example of introducing you to the Options menu
- Click on the Options link on the top right of the web interface in the image above
- This will bring you to the options window as shown below. Click on the 'System' tab and then select the'flat' option for CSS_DEFAULT as shown below
- Click Save at the bottom
Now, switch to the 'Display' tab and also select 'Flat' there like so:
Your screen will now look like this:
Congratulations! You now have a modern looking interface.
Conclusion¶
This was a quick ‘Getting Started' guide where you were introduced to the very basics of how to add a monitor (camera). We've skipped many details to keep this concise. Please refer to Defining Monitors for many other customization details.
The ZoneMinder Wiki is community based. That means the list below is only as good as those who chose to maintain it. Did you find something outdated? Did you get a camera working, which is not shown in the list below? Please consider adding or improving this list.
IP Network Cameras
Most modern IP cameras are ONVIF compliant, which means most modern IP cameras should work with ZoneMinder. However, there are some caveats to this general rule. Cameras which (only) send an encrypted stream will not work with any third party recording software. Some 'cloud' cameras fit into this category [examples?].
You should verify one can adjust camera parameters such as frame rate, resolution, contrast, etc. from within the camera's web portal. This, in itself, is not a show-stopper, but it will make your experience a lot easier. [why?]
The following list of IP cameras is not exhaustive. If your camera is not listed, it does not mean that it won't work with ZoneMinder. Rather, it is likely that no one has taken the time to add it to the list. Please consider adding your camera to this list once you get it working. More details on obtaining stream paths can be found on Finding Camera Stream Paths.
Full Compatibility
- 7Links(TM Trade Mark)
- Abus some
- Airlink 101 some
- Amovision some
- Apexis most if not all (only tested some)
- ArecontVision (AV3130M, probably other too)
- Astak Mole Some
- Axis All
- BesDERSEC HX WIFI - ONVIF
- BesDERSEC A6 PTZ - ONVIF - Used Netcat ONVIF for control
- Brickcom These have been tested
- B-QTECH H.264 Camera
- BSTI Some
- Cisco some
- COT Pro some
- Dahua (IPC-HDB3200C, probably others)
- DBPower (H.264 Model, possibly others)
- Digoo At least M1Q, probably more.
- D-Link Most
- EasyN (Mini Speed Dome 1BF)
- Edimax only tested some
- EyeSpy247 (Branded Sercomm RC8021)
- EZVIZ (by Hikvision)
- Flir (rebranded Lorex which are rebranded Dahua)
- Foscam (FI8908W, FI8904W, possibly others)
- Gadspot Most
- GBF One reportedly (doorbell camera)
- Generic Only tested one
- Geovision (GV-FE420, possibly others)
- Grandstream Grandstream (GXV-3672-FHD & GXV-3672-FHD-36 & GXV3611_HD tested)
- Hikvision Most
- Honeywell HD3MDIP
- hootoo Some
- Iguard IP390E
- ieGeek CT0247UK
- Instar (IN-2905, IN-5907HD, possibly others)
- InternetEye M6840
- Jennov (only tested model JE-A73WG20-E)
- Keekoon KK002 (KK001 and 3 are probably the same)
- LaView many LV-PB932F4
- Level One some
- Lilin LR7022
- Linksys WVC-210 / WVC2300 / PVC2300 / WVC54GC
- Loftek Sentinel PTZ
- Lorex (rebranded Dahua)
- Maygion (IP-603, IP-604, possibly others)
- Messoa (NCR870, probably others)
- MPIX (40-IRBF-K28, probably others)
- Netcat IP Cameras
- Openwrt Webcam, or custom firmware on commercial cameras.
- Panasonic IP Cameras
- Pelco IP Cameras
- Revotech I6032W-P
- Rimax Some
- Sercomm (ADT)
- Sony Most
- TMEZON Some
- TP-LINK Some
- Trendnet Most
- Uokoo One
- Wanscam FR4020A2 (Foscam clone)
- Wgcc One
Zoneminder Ip4mcb1
- x-vision Xvision cameras by y3k (some)
- Xiongmai They sell modules used in multiple Chinese cameras like Misecu IPC-DM07-20SC (with module IPG-50HV20PES-S)
- Y-Cam (Sharx Ip) Most
- Zavio Some
- Zecumate JPT3815W
- ZoneMinder can also be accessed as if it were another camera, using a Remote Path such as:
Where the is the correct camera id on the remote system. [other settings?]
Single JPEG Frames Only
- Airlink 101 some
- JVC some
- Panasonic some
- PLANET some
- Toshiba some
Zoneminder Best Cameras
- Veo Observer IP NetCam most
- Vivotek All
MPEG (v1.24.0+)
- Axis All
- ACTi All
- Vivotek Most
- Logitech 700 series some
- Ubiqiti some
Compatible (with modifications)
- Aviosys some
- Mobotix all
- Conceptronic some
Compatible (with problems)
- Compro IP70. MPEG4 only, some reliability issues and general poor firmware quality.
- GrandtecWLAN Camera WiFi or III - acceptable indoor quality, no infrared-filter (better nightvision) cheap!
- Intellinet IPCamera with the new firmware.
- Old Intellinet IPCamera (model MWNC-100) with this (http://www.zoneminder.com/forums/viewtopic.php?t=7500) protocol adapter.
- OvisLink AirLive WL-5400CAM
Vocal pitch correction.
Useful Links
- Flash's IP Camera Database: https://digdilem.org/ip-cameras/ (Doesn't seem to work when searching for 'Works with Zoneminder?' option, though. - jpcy)
IP Video Encoder
Like Network Cameras, these devices produce a video stream over tcp/ip - but they do so with input from an analog video camera or other video source. An easy way to find these are to search for video encoders or video servers, e.g. 8 channel video encoder, or 2 channel video server. Newer video encoders may also support HD Analog either in addition, or instead of analog streams (how they implement HD analog, depends upon the brand. There are currently competing standards such as AHD, EX-SDI, HD-SDI, HD-CVI, HD-TVI, etc..).
IP Video Encoders are generally easier to use and maintain than PCI / Capture cards.
- Synectics E100 encoder
- The Aviosys IP9100, Models A, B and Plus has four analog video inputs. It produces a ZM compatible video stream from one of the inputs, which is selectable via an HTTP GET command. There might even be a control script for ZM that lets you select the active video input using ZM's Camera Control Presets!
With the yoics Aviosys 9100 firmware at http://www.yoics.com/?p=28, ZoneMinder can directly access all four ports via /usr/yoicsX.jpg as the remote host path, where X is 0 - 3.
- Axis Multiple
- Bosch VIP X1 Single-channel video encoder [1]
- GXV3504 Grandstream 4 channel video encoder.
- Hikvision HD Analog (With errors)
- Samsung uses AHD cameras, and possibly NTSC/PAL cameras.
Capture Cards
Leadtek WinFast VC 100 - the cheapest bt878 model with no tuner on it, just Com/Svideo in.
bt8x8 Cards
BT8x8 cards are handled by the Kernel module BTTV. A note on the bt8x8-based TV-tuner cards: these usually have beside the tuner input, also a Composite and an S-Video input. You can hook up 2 analog cameras to these, and access from ZoneMinder both of them as individual cameras, at max 15Fps. You don't need two separate TV cards for two cameras!
Pico2000 - 4 port card, one chip bt878, around 2 fps when using all channels
Bt878_4chip_8inputs -4 chips bt878, 8 inputs, around 5 fps when using 2 inputs per chip
bt878 8 chip 8 input - This card is supplied with D-sub to 8 BNC connector and uses the bt878 chip for each input allowing full frame rates and quality. See Kodicom 8800 for more information.
Geovision GV250 bt878a single chip 4 inputs - This capture Card is supplied with 4 video inputs but with NO audio channel
Geovision GV-800 8 inputs - [2] Recommended to review forums.
Most other BTTV (bt878, bt848) cards, see /usr/src/linux/Documentation/video4linux/bttv/CARDLIST on your system for a list. You can also find more details on the BTTV module, such as parameters to pass via insmod, in the kernel andon the v4l wiki 2nd link
Analog Cameras
Any regular composite or S-video camera connected via a supported capture card. Some analog cameras feature camera control - ZM supports several of these camera's Pan/Tilt/Zoom functions via serial port control, as well as camera Presets, Focus, Iris, etc.
- PictureTel PTZ2N.
USB Cameras
- Just Zoom USB cam
- Creative Webcam Pro, Webcam 3, LIVE! Cam OPTIA PRO (V4L2, Chan 0, PAL, YUYV)
- Most UVCvideo cameras, including: Advent AWC213, Creative Labs VF0420, Logitech QuickCam Express, Logitech HD C270, QuickCam Pro 3000, QuickCam Pro 4000, QuickCam Communicate STX/Deluxe, Logitech Webcam Pro 9000, Webcam C250, and Logitech C525.
- Logitech Quickcam Orbit/Sphere (experimental basic pan/tilt control has also published for testing and hacking [3])
- Any OV511 based USB camera [4]
- Any CPIA based USB camera [5]
- Confirmed basic functionality with Microsoft Lifecam VX 5000 using UVC Streaming method
- Company name: PU`Aimetis model: PUAN-3656 (2MP / Max resolution: 1920*1080, MJPEG - 1920X1080 @ 30fps / YUV2 - 1920X1080 @ 5fps)
Note that most USB cameras that can use Video4Linux/V4L2, and so can be used by ZoneMinder. Some have older chipsets and can be hard to find new.
Note that PWC drivers are not included in the kernel. Some distribution's add them in and other may not. Here are some relevant links:
X10 Devices
The only device that really needs to be compatable with ZM is the Transceiver, all other x10 devices comunicate through that device.
- CM11 Bi-Directional Transceiver
Other X10 notes:
All other hardware as supported by Linux
To find out if your hardware is supported, check the HCL
Plug Computers
Guruplug Server Plus -> How to install Zoneminder
Single Board Computers
Single board computers such as the Raspberry Pi, Odroid, Beagleboard, and many others.
System 7 live. See Single Board Computers