Defining Monitors

To use ZoneMinder properly you need to define at least one Monitor. Essentially, a monitor is associated with a camera and can continually check it for motion detection and such like.

You can access the monitor window by clicking on the “Add New Monitor” button, or by clicking on the “Source” column of a predefined monitor.

../_images/definemonitor-monitor.png

There are a small number of camera setups that ZoneMinder knows about and which can be accessed by clicking on the ‘Presets’ link. Selecting one of the presets will fill in the monitor configuration with appropriate values but you will still need to enter others and confirm the preset settings. Here is an example of the presets window:

../_images/definemonitor-preset.png

The options are divided into a set of tabs to make it easier to edit. You do not have to ‘save’ to change to different tab so you can make all the changes you require and then click ‘Save’ at the end. The individual options are explained in a little more detail below,

Monitor Tab

Id
You can reuse or specify an Id # to use here. Normally you should leave this blank.
Name
The name for your monitor. This should be made up of alphanumeric characters (a-z,A-Z,0-9), the following special characters ()_-.: and whitespace.
Notes
This is a purely informational field. Put anything you want in here.
Manufacturer
The manufacturer of the camera. This is purely informational at this time. You can enter your own or select from the existing entries in the dropdown.
Model
The model of the camera. This is purely informational at this imte. You can enter your own or select from the existing entries in the dropdown.
Server
Multi-Server implementation allows the ability to define multiple ZoneMinder servers sharing a single database. When servers are configured this setting allows you nominate the server for each monitor.
Source Type
This determines whether the camera is a local one attached to a physical video or USB port on your machine, a remote network camera or an image source that is represented by a file (for instance periodically downloaded from a alternate location). Choosing one or the other affects which set of options are shown in the Source tab.
Groups
Monitors can be added to groups, for the purpose of quickly selected a certain set of monitors when viewing. Monitors can be in multiple groups.
Triggers
This small section lets you select which triggers will apply if the run mode has been set to ‘triggered’ above. The most common trigger is X10 and this will appear here if you indicated that your system supported it during installation. Only X10 is supported as a shipped trigger with ZoneMinder at present but it is possible that other triggers will become available as necessary. You can also just use ‘cron’ jobs or other mechanisms to actually control the camera and keep them completely outside of the ZoneMinder settings. The zmtrigger.pl script is also available to implement custom external triggering.

Source Tab

Capturing
None - the monitor is disabled. No capturing process will be started. Recording will not happen. OnDemand - the capturing process will run but will sleep until someone attempts to view the stream at which time capturing will start. Always - this is the normal mode of operation. A capture process will run and constantly capture video.

FFmpeg

This is the recommended source type for most modern ip cameras.
Source Path

Use this field to enter the full URL of the stream or file your camera supports. This is usually an RTSP url. There are several methods to learn this:

  • Check the documentation that came with your camera
  • Look for your camera in the hardware compatibility list in the hardware compatibility wiki
  • Try ZoneMinder’s new ONVIF probe feature
  • Download and install the ONVIF Device Manager onto a Windows machine
  • Use Google to find third party sites, such as ispy, which document this information
Username
The username part to use when authenticating the RTSP stream. This can be entered into the Path, but will be automatically moved to the Username/Password fields.
Password
The password to use when authenticating the RTSP stream. This can be entered into the Path, but will be automatically moved to the Username/Password fields.
Method
TCP - TCP is a reliable protocol, but has more overhead. Some cameras do not support it. UDP - UDP is an unreliable protocol, but is more efficient. SOME cameras will display smearing effects due to lost or out of order packets. These can be fixed by either using TCP, or specifying reorder_queue_size= in Options. UDP Multicast - Multicast is when the camera broadcasts the video once on the network and ZoneMinder subscribes to and receives the video. This is more efficient when there are multiple viewers. HTTP Tunnel - Tunnel RTSP over HTTP.
Options
Here you can pass various settings to the ffmpeg libraries. As mentioned above if using UDP you may want to specify reorder_queue_size here.
Target Colourspace
Specify the amount of colours in the captured image. 32 bit is the preferred choice here, due to being able to use SSE/NEON cpu instructions. Unlike with local cameras changing this has no controlling effect on the remote camera itself so ensure that your camera is actually capturing to this palette beforehand.
Capture Width/Height
Make sure you enter here the same values as they are in the remote camera’s internal setting.
Preserve aspect ratio
As per local devices.
Orientation
As per local devices.

LibVLC

The fields for the LibVLC source type are configured the same way as the ffmpeg source type. We recommend only using this source type if issues are experienced with the ffmpeg source type.

cURL

Local

Device Path/Channel
Enter the full path to the device file that your camera is attached to, e.g. /dev/video0. Some video devices, e.g. BTTV cards support multiple cameras on one device so in this case enter the channel number in the Channel box or leave it at zero if you’re using a USB camera or one with just one channel. Look in Supported Hardware section, how to see if your capture card or USB webcam is supported or not, and what extra settings you may have to do, to make it work.
Device Format
Enter the video format of the video stream. This is defined in various system files (e.g. /usr/include/linux/videodev.h) but the two most common are 0 for PAL and 1 for NTSC.
Capture Palette
Finally for the video part of the configuration enter the colour depth. ZoneMinder supports a handful of the most common palettes, so choose one here. If in doubt try 32 bit colour first, then 24 bit colour, then grey. If none of these work very well, and your camera is local, then YUV420P or one of the others probably will. There is a slight performance penalty when using palettes other than 32, 24, or grey palettes as an internal conversion is involved. Recent versions of ZoneMinder support 32bit colour. This capture palette provides a performance boost when used on all modern Intel-based processors.
Capture Width/Height
The dimensions of the video stream your camera will supply. If your camera supports several just enter the one you’ll want to use for this application, you can always change it later. However I would recommend starting with no larger than 320x240 or 384x288 and then perhaps increasing and seeing how performance is affected. This size should be adequate in most cases. Some cameras are quite choosy about the sizes you can use here so unusual sizes such as 197x333 should be avoided initially.
Keep aspect ratio
When typing in the dimensions of monitors you can click this checkbox to ensure that the width stays in the correct ratio to the height, or vice versa. It allows height to be calculated automatically from width (or vice versa) according to preset aspect ratio. This is preset to 4:3 but can be amended globally via the Options->Config->ZM_DEFAULT_ASPECT_RATIO setting. Aside from 4:3 which is the usual for network and analog cameras another common setting is 11:9 for CIF (352x288) based sources.
Orientation
If your camera is mounted upside down or at right angles you can use this field to specify a rotation that is applied to the image as it is captured. This incurs an additional processing overhead so if possible it is better to mount your camera the right way round if you can. If you choose one of the rotation options remember to switch the height and width fields so that they apply, e.g. if your camera captures at 352x288 and you choose ‘Rotate Right’ here then set the height to be 352 and width to be 288. You can also choose to ‘flip’ the image if your camera provides mirrored input.

Remote

Remote Protocol
Choices are currently HTTP and RTSP. Before RTSP became the industry standard, many ip cameras streamed directly from their web portal. If you have an ip camera that does not speak RTSP then choose HTTP here. If you camera does speak RTSP then you should change your source type to ffmpeg instead of selecting RTSP here. The Remote -> RTSP method is no longer being maintained and may go away at some point in the future.
Remote Method
When HTTP is the Remote Protocol, your choices are Simple and Regexp. Most should choose Simple. When RTSP is the Remote Protocol, your choices are RTP/Unicast, RTP/Multicast, RTP/RTSP, RTP,RTSP,HTTP. Try each of these to determine which works with your camera. Most cameras will use either RTP/Unicast (UDP) or RTP/RTSP (TCP).
Remote Host/Port/Path
Use these fields to enter the full URL of the camera. Basically if your camera is at http://camserver.home.net:8192/cameras/camera1.jpg then these fields will be camserver.home.net, 8192 and /cameras/camera1.jpg respectively. Leave the port at 80 if there is no special port required. If you require authentication to access your camera then add this onto the host name in the form <username>:<password>@<hostname>.com. This will usually be 32 or 24 bit colour even if the image looks black and white. Look in Supported Hardware > Network Cameras section, how to obtain these strings that may apply to your camera.
Remote Image Colours
Specify the amount of colours in the captured image. Unlike with local cameras changing this has no controlling effect on the remote camera itself so ensure that your camera is actually capturing to this palette beforehand.
Capture Width/Height
Make sure you enter here the same values as they are in the remote camera’s internal setting.
Keep aspect ratio
As per local devices.
Orientation
As per local devices.

For an example to setup a MPEG-4 camera see: How_to_Setup_an_Axis211A_with_MPEG-4_streaming

File

File Path
Enter the full path to the file to be used as the image source.
File Colours
Specify the amount of colours in the image. Usually 32 bit colour.
Capture Width/Height
As per local devices.
Keep aspect ratio
As per local devices.
Orientation
As per local devices.

WebSite

This Source Type allows one to configure an arbitrary website as a non-recordable, fully interactive, monitor in ZoneMinder. Note that sites with self-signed certificates will not display until the end user first manually navigates to the site and accpets the unsigned certificate. Also note that some sites will set an X-Frame option in the header, which discourages their site from being displayed within a frame. ZoneMinder will detect this condition and present a warning in the log. When this occurs, the end user can choose to install a browser plugin or extension to workaround this issue.

Website URL
Enter the full http or https url to the desired website.
Width (pixels)
Chose a desired width in pixels that gives an acceptable appearance. This may take some expirimentation.
Height (pixels)
Chose a desired height in pixels that gives an acceptable appearance. This may take some expirimentation.
Web Site Refresh
If the website in question has static content, optionally enter a time period in seconds for ZoneMinder to refresh the content.

Maximum FPS

Warning

Unless you know what you are doing, please leave this field empty, especially if you are configuring a network camera. More often than not, putting a value here adversely affects recording.

On some occasions you may have one or more cameras capable of high capture rates but find that you generally do not require this performance at all times and would prefer to lighten the load on your server. This option permits you to limit the maximum capture rate to a specified value. This may allow you to have more cameras supported on your system by reducing the CPU load or to allocate video bandwidth unevenly between cameras sharing the same video device. This value is only a rough guide and the lower the value you set the less close the actual FPS may approach it especially on shared devices where it can be difficult to synchronise two or more different capture rates precisely. This option controls the maximum FPS in the circumstance where no alarm is occurring only.

This feature is limited and will only work under the following conditions:

  1. Local cameras
  2. Remote (IP) cameras in snapshot or jpeg mode only

Using this field for video streams from IP cameras will cause undesirable results when the value is equal to or less than the frame rate from the camera. Note that placing a value higher than the camera’s frame rate is allowed and can help prevent cpu spikes when communication from the camera is lost.

Alarm Maximum FPS

Warning

Unless you know what you are doing, please leave this field empty, especially if you are configuring a network camera. More often than not, putting a value here adversely affects recording.

If you have specified a Maximum FPS it may be that you don’t want this limitation to apply when your monitor is recording motion or other event. This setting allows you to override the Maximum FPS value if this circumstance occurs. As with the Maximum FPS setting leaving this blank implies no limit so if you have set a maximum fps in the previous option then when an alarm occurs this limit would be ignored and ZoneMinder would capture as fast as possible for the duration of the alarm, returning to the limited value after the alarm has concluded. Equally you could set this to the same, or higher (or even lower) value than Maximum FPS for more precise control over the capture rate in the event of an alarm.

IMPORTANT: This field is subject to the same limitations as the Maximum FPS field. Ignoring these limitations will produce undesriable results.

Analysis Tab

The analysis tab contains settings relating to motion detection.

Motion Detection: None - Do not perform motion detection. Recording can still be triggered manually.
Always - Perform motion detection
Analysis Image: Full Colour - perform the detection using the full RGB image
Y-Channel - If the capture process results in an image in YUV format, the Y channel is a grey scale image. So we can do motion detection on that, using 1/4 of the cpu that when using the Full Colour image.

Analysis FPS: You don’t have to do motion detection on every frame. If the stream is 30fps, you might do just fine motion detecting at 5fps or even less. This saves a lot of CPU.

Reference Image Blend %ge
Each analysed image in ZoneMinder is a composite of previous images and is formed by applying the current image as a certain percentage of the previous reference image. Thus, if we entered the value of 10 here, each image’s part in the reference image will diminish by a factor of 0.9 each time round. So a typical reference image will be 10% the previous image, 9% the one before that and then 8.1%, 7.2%, 6.5% and so on of the rest of the way. An image will effectively vanish around 25 images later than when it was added. This blend value is what is specified here and if higher will make slower progressing events less detectable as the reference image would change more quickly. Similarly events will be deemed to be over much sooner as the reference image adapts to the new images more quickly. In signal processing terms the higher this value the steeper the event attack and decay of the signal. It depends on your particular requirements what the appropriate value would be for you but start with 10 here and adjust it (usually down) later if necessary.
Linked Monitors
This field allows you to select other monitors or zones on your system that act as triggers for this monitor. So if you have a camera covering one aspect of your property you can force all cameras to record while that camera detects motion or other events. You can either directly enter a comma separated list of monitor ids or click on ‘Select’ to choose a selection. Be very careful not to create circular dependencies with this feature however you will have infinitely persisting alarms which is almost certainly not what you want! To unlink monitors you can ctrl-click. You can also enter logical operators here to create more complex logic. | means OR and & means AND. So A | B means record if either A or B is alarmed. A & B means trigger if both A and B are alarmed.

Recording Tab

The storage section allows for each monitor to configure if and how video and audio are recorded.

Recording: Always - always record regardless of motion detection.
On Motion/Trigger/etc - record only when motion is detected or the system is otherwise triggered. None - Do not record.

Storage Area: Where to store the recordings. If writing to this area fails, others will be tried.

Save JPEGs

Records video in individual JPEG frames. Storing JPEG frames requires more storage space than h264 but it allows one to view an event anytime while it is being recorded.

  • Disabled – video is not recorded as JPEG frames. If this setting is selected, then “Video Writer” should be enabled otherwise there is no video recording at all.
  • Frames only – video is recorded in individual JPEG frames.
  • Analysis images only (if available) – video is recorded in individual JPEG frames with an overlay of the motion detection analysis information. Note that this overlay remains permanently visible in the frames.
  • Frames + Analysis images (if available) – video is recorded twice, once as normal individual JPEG frames and once in individual JPEG frames with analysis information overlaid.
Video Writer

Records video in real video format. It provides much better compression results than saving JPEGs, thus longer video history can be stored.

  • Disabled – video is not recorded in video format. If this setting is selected, then “Save JPEGs” should be enabled otherwise there is no video recording at all.
  • Encode – the video or picture frames received from the camera are transcoded into the selected codec and stored as a video. This option is useful if the camera cannot natively stream h264.
  • Camera Passthrough – this option assumes that the camera is already sending an h264 stream. Video will be recorded as is, without any post-processing in zoneminder. Video characteristics such as bitrate, encoding mode, etc. should be set directly in the camera. The resulting video will not include the zoneminder timestamp overlay so it is important to have the camera include the date/time in the video.
Output Codec
If encoding, you can choose between h264, h265/hevc, vp9 or av1
Encoder
If encoding you can choose which encoder will be used. This is where you can select a hardware accelerated encoder.
Output Container
  • Auto - ZM will choose the best. At the moment it will choose mp4.
  • mp4
  • mkv
  • webm
Optional Encoding Parameters
Mostly useful when encoding as each encoder takes different parameters. You will have to consult the ffmpeg documentation for what parameters are available for each encoder.
Recording Audio
Check the box labeled “Whether to store the audio stream when saving an event.” in order to save audio (if available) when events are recorded.
Event Start Command
When a recording event starts, you can run a system command. The parameters to the command will be the event id and the monitor id.
Event End Command
When a recording event ends, you can run a system command. The parameters to the command will be the event id and the monitor id.

Viewing Tab

RTSP Server
Whether to make this monitor’s video stream available to the ZM RTSP Server. You will need to also enable the RTSP Server in Options -> System.
RTSPStreamName
The path part of the RTSP url used for this monitor. Must be unique. For example, if the rtsp server is at port 10000, then the url for this monitor might be rtsp://localhost:10000/RTSPStreamName
Janus Live Stream
Whether to enable Janus restreaming of the video content. This uses webrtc to view the stream in h264 instead of a stream of jpegs. It also enables audio in the live feed.
Default Rate
When live viewing, you can watch at a slow fps than ZoneMinder is capturing at. This can be changed during viewing, but this sets the default.
Default Scale
If your monitor has been defined with a particularly large or small image size then you can choose a default scale here with which to view the monitor so it is easier or more visible from the web interface. A value of Auto will attempt to fill the browser window as best it can.
Default Method For Event View
When watching single events, if the video is an h264 mp4 you can use the browser’s built in video player. If the video is h265 and can’t play the video natively, we can use ZMS to convert it to MJPEG and view that.

Timestamp Tab

Timestamp Label Format
This relates to the timestamp that is applied to each frame. It is a ‘strftime’ style string with a few extra tokens. You can add %f to add the decimal hundredths of a second to the frame timestamp, so %H:%M:%S.%f will output time like 10:45:37.45. You can also use %N for the name of the monitor and %Qwhich will be filled by any of the ‘show text’ detailed in the zmtriggers.pl section.
Timestamp Label X/Y
The X and Y values determine where to put the timestamp. A value of 0 for the X value will put it on the left side of the image and a Y value of 0 will place it at the top of the image. To place the timestamp at the bottom of the image use a value eight less than the image height.
Font Size
There are 4 fonts sizes to choose from. Small is good for resolutions like 640x480. Default is good for 720p. Large is good for 1080p. Extra Large is good for higher resolutions.

Buffers Tab

Image Buffer Size
This option determines how many frames are held in the ring buffer in the /dev/shm ramdisk. This ring buffer is used to store the raw RGB images that zms turns into jpegs when live viewing. In the past this needed to be large because it queued frames for analysis but that has been replaced by a dynamic packet queue. A value of 3 or 5 should do.
Max Image Buffer Size
This option determines the maximum number of video packets to keep in the packet queue. Ideally this would be left blank but if there is any slowness in the database or disks the queue will fill up and consume all of RAM. Please set this to a reasonable limit like 2 times the keyframe interval. how many frames are held in the ring buffer in the /dev/shm ramdisk. The ring buffer is the storage space where the last ‘n’ images are kept, ready to be resurrected on an alarm or just kept waiting to be analysed. It can be any value you like with a couple of provisos, (see next options). However it is stored in shared memory and making it too large especially for large images with a high colour depth can use a lot of memory. A value of no more than 50 is usually ok. If you find that your system will not let you use the value you want it is probably because your system has an arbitrary limit on the size of shared memory that may be used even though you may have plenty of free memory available. This limit is usually fairly easy to change, see the Troubleshooting section for details.
Warm-up Frames
This specifies how many frames the analysis daemon should process but not examine when it starts. This allows it to generate an accurate reference image from a series of images before looking too carefully for any changes. I use a value of 25 here, too high and it will take a long time to start, too low and you will get false alarms when the analysis daemon starts up.
Pre/Post Event Image Buffer
These options determine how many frames from before and after an event should be preserved with it. This allows you to view what happened immediately prior and subsequent to the event. A value of 10 for both of these will get you started but if you get a lot of short events and would prefer them to run together to form fewer longer ones then increase the Post Event buffer size. The pre-event buffer is a true buffer and should not really exceed half the ring buffer size. However the post-event buffer is just a count that is applied to captured frames and so can be managed more flexibly. You should also bear in mind the frame rate of the camera when choosing these values. For instance a network camera capturing at 1FPS will give you 10 seconds before and after each event if you chose 10 here. This may well be too much and pad out events more than necessary. However a fast video card may capture at 25FPS and you will want to ensure that this setting enables you to view a reasonable time frame pre and post event.
Stream Replay Image Buffer
The number of frames buffered to allow pausing and rewinding of the stream when live viewing a monitor. A value of 0 disables the feature. Frames are buffered to ZM_PATH_SWAP. If this path points to a physical drive, a lot of IO will be caused during live view / montage. If you experience high system load in those situations, either disable the feature or use a RAM drive for ZM_PATH_SWAP.
Alarm Frame Count
This option allows you to specify how many consecutive alarm frames must occur before an alarm event is generated. The usual, and default, value is 1 which implies that any alarm frame will cause or participate in an event. You can enter any value up to 16 here to eliminate bogus events caused perhaps by screen flickers or other transients. Values over 3 or 4 are unlikely to be useful however. Please note that if you have statistics recording enabled then currently statistics are not recorded for the first ‘Alarm Frame Count’-1 frames of an event. So if you set this value to 5 then the first 4 frames will be missing statistics whereas the more usual value of 1 will ensure that all alarm frames have statistics recorded.

Control Tab

Note: This tab and its options will only appear if you have selected the ZM_OPT_CONTROL option to indicate that your system contains cameras which are able to be controlled via Pan/Tilt/Zoom or other mechanisms. See the Camera Control section elsewhere in this document for further details on camera control protocols and methods.

Controllable
Check this box to indicate your camera can be controlled.
Control Type
Select the control type that is appropriate for your camera. ZoneMinder ships with a small number of predefined control protocols which will works with some cameras without modification but which may have to amended to function with others, Choose the edit link to create new control types or to edit the existing ones.
Control Device
This is the device that is used to control your camera. This will normally be a serial or similar port. If your camera is a network camera, you will generally not need to specify a control device.
Control Address
This is the address of your camera. Some control protocols require that each camera is identified by a particular, usually numeric, id. If your camera uses addressing then enter the id of your camera here. If your camera is a network camera then you will usually need to enter the hostname or IP address of it here. This is ordinarily the same as that given for the camera itself.
Auto Stop Timeout
Some cameras only support a continuous mode of movement. For instance you tell the camera to pan right and then when it is aligned correctly you tell it to stop. In some cases it is difficult to time this precisely over a web interface so this option allows you to specify an automatic timeout where the command will be automatically stopped. So a value of 0.25 here can tell the script to stop moving a quarter of a second after starting. This allows a more precise method of fine control. If this value is left blank or at zero it will be ignored, if set then it will be used as the timeout however it will only be applied for the lower 25% of possible speed ranges. In other words if your camera has a pan speed range of 1 to 100 then selecting to move at 26 or over will be assumed to imply that you want a larger movement that you can control yourself and no timeout will be applied. Selecting motion at lower speeds will be interpreted as requiring finer control and the automatic timeout will be invoked.
Track Motion
This and the following four options are used with the experimental motion function. This will only work if your camera supports mapped movement modes where a point on an image can be mapped to a control command. This is generally most common on network cameras but can be replicated to some degree on other cameras that support relative movement modes. See the Camera Control section for more details. Check this box to enable motion tracking.
Track Delay
This is the number of seconds to suspend motion detection for following any movement that the camera may make to track motion.
Return Location
If you camera supports a ‘home’ position or presets you can choose which preset the camera should return to after tracking motion.
Return Delay
This is the delay, in seconds, once motion has stopped being detected, before the camera returns to any defined return location.

X10 Tab

Note: This tab and its options will only appear if you have indicated that your system supports the X10 home automation protocol during initial system configuration.

X10 Activation String

The contents of this field determine when a monitor starts and/or stops being active when running in ‘Triggered; mode and with X10 triggers. The format of this string is as follows,

  • n : If you simply enter a number then the monitor will be activated when an X10 ON signal for that unit code is detected and will be deactivated when an OFF signal is detected.
  • !n : This inverts the previous mode, e.g. !5 means that the monitor is activated when an OFF signal for unit code 5 is detected and deactivated by an ON.
  • n+ : Entering a unit code followed by + means that the monitor is activated on receipt of a ON signal for that unit code but will ignore the OFF signal and as such will not be deactivated by this instruction. If you prepend a ‘!’ as per the previous definition it similarly inverts the mode, i.e. the ON signal deactivates the monitor.
  • n+<seconds> : As per the previous mode except that the monitor will deactivate itself after the given number of seconds.
  • n- : Entering a unit code followed by - means that the monitor is deactivated on receipt of a OFF signal for that unit code but will ignore the ON signal and as such will not be activated by this instruction. If you prepend a ‘!’ as per the previous definition it similarly inverts the mode, i.e. the OFF signal activates the monitor.
  • n-<seconds> : As per the previous mode except that the monitor will activate itself after the given number of seconds.

You can also combine several of these expressions to by separating them with a comma to create multiple circumstances of activation. However for now leave this blank.

X10 Input Alarm String
This has the same format as the previous field but instead of activating the monitor with will cause a forced alarm to be generated and an event recorded if the monitor is Active. The same definition as above applies except that for activated read alarmed and for deactivated read unalarmed(!). Again leave this blank for now.
X10 Output Alarm String
This X10 string also has the same format as the two above options. However it works in a slightly different way. Instead of ZoneMinder reacting to X10 events this option controls how ZoneMinder emits X10 signals when the current monitor goes into or comes out of the alarm state. Thus just entering a number will cause the ON signal for that unit code to be sent when going into alarm state and the OFF signal when coming out of alarm state. Similarly 7+30 will send the unit code 7 ON signal when going into alarm state and the OFF signal 30 seconds later regardless of state. The combination of the X10 instruction allows ZoneMinder to react intelligently to, and also assume control of, other devices when necessary. However the indiscriminate use of the Input Alarm and Output Alarm signals can cause some horrendous race conditions such as a light going on in response to an alarm which then causes an alarm itself and so on. Thus some circumspection is required here. Leave this blank for now anyway.

Misc Tab

Event Prefix
By default events are named ‘Event-<event id>’, however you are free to rename them individually as you wish. This option lets you modify the event prefix, the ‘Event-‘ part, to be a value of your choice so that events are named differently as they are generated. This allows you to name events according to which monitor generated them.
Section Length
This specifies the length (in seconds) of any fixed length events produced when the monitor function is ‘Record’ or ‘Mocord’. Otherwise it is ignored. This should not be so long that events are difficult to navigate nor so short that too many events are generated. A length of between 300 and 900 seconds I recommended.
Frame Skip
This setting also applies only to the ‘Record’ or ‘Mocord’ functions and specifies how many frames should be skipped in the recorded events. The default setting of zero results in every captured frame being saved. Using a value of one would mean that one frame is skipped between each saved, two means that two frames are skipped between each saved frame etc. An alternate way of thinking is that one in every ‘Frame Skip + 1’ frames is saved. The point of this is to ensure that saved events do not take up too much space unnecessarily whilst still allowing the camera to capture at a fairly high frame rate. The alternate approach is to limit the capture frame rate which will obviously affect the rate at which frames are saved.
FPS Report Interval
How often the current performance in terms of Frames Per Second is output to the system log. Not used in any functional way so set it to maybe 1000 for now. If you watch /var/log/messages (normally) you will see this value being emitted at the frequency you specify both for video capture and processing.
Web Colour
Some elements of ZoneMinder now use colours to identify monitors on certain views. You can select which colour is used for each monitor here. Any specification that is valid for HTML colours is valid here, e.g. ‘red’ or ‘#ff0000’. A small swatch next to the input box displays the colour you have chosen.
Embed EXIF data into image:

Embeds EXIF data into each jpeg frame

Todo

what about mp4s?