diff --git a/README b/README index 566476091..32c506e1b 100644 --- a/README +++ b/README @@ -1,22 +1,29 @@ - 20/03/05 ZoneMinder 1.21.0 README - - - - ZoneMinder - - v1.21.0 + 13/06/05 ZoneMinder 1.21.1 README 1 + + ZoneMinder + + v1.21.1 + + + + + Open Source Linux Video Camera Security + + + http://www.zoneminder.com + Introduction Welcome to ZoneMinder, the all-in-one Linux GPL'd security camera solution. @@ -25,10 +32,9 @@ A while back my garage was burgled and all my power tools were stolen! I realised shortly after that if I'd just had a camera overlooking the door then at least I'd have know exactly when and who did the dirty deed. And so ZoneMinder was born. It's -still a baby but hopefully it can grow up to be something that -can be genuinely useful and maybe one day either prevent -similar incidents or perhaps bring some perpetrators to -justice. +still relatively new but hopefully it has developed to be +something that can be genuinely useful and prevent similar +incidents or even perhaps bring some perpetrators to justice. ZoneMinder is designed around a series of independent components that only function when necessary limiting any @@ -36,7 +42,7 @@ wasted resource and maximising the efficiency of your machine. A fairly ancient Pentium II PC should be able to track one camera per device at up to 25 frames per second with this dropping by half approximately for each additional camera on -the same device, additional cameras on other devices do not +the same device. Additional cameras on other devices do not interact so can maintain this frame rate. Even monitoring several cameras still will not overload the CPU as frame processing is designed to synchronise with capture and not @@ -74,8 +80,8 @@ ZoneMinder is free but if you do get ZoneMinder up and running and find it useful then please feel free to visit http://www.zoneminder.com/donate.html where any donations will be appreciated and will help to fund future improvements to -ZoneMinder. This would be especially appreciated if you use -ZoneMinder as part of your business or to protect your +ZoneMinder. This would be especially relevant if you use +ZoneMinder as part of your business, or to protect your property. @@ -92,9 +98,11 @@ mysql rpm files to be sure you have the right ones. Next it does things with JPEGs so you'll need at least libjpeg.a which I think come as standard nowadays with most -distributions. It also uses the netpbm utilities in a very -limited way to generate thumbnails under certain circumstances -though this can be modified. +distributions. Users have reported varying degrees of success +with other jpeg libraries such as jpeg-mmx but these are not +officially supported. It also uses the netpbm utilities in a +very limited way to generate thumbnails under certain +circumstances though this can be modified. ZoneMinder can generate MPEG videos if necessary, for this you'll need either ffmpeg (recommended) or the Berkeley MPEG @@ -186,11 +194,11 @@ interactive mode by typing perl ./zmconfig.pl -noi which will just read your file and do the substitutions with -no questions asked. There are two classes of options, `core' +no questions asked. There are two classes of options, 'core' options which much be specified with zmconfig which detail things such as database passwords which are compiled into ZoneMinder and other options with are stored in the database -and which can be modified dynamically via the `options' +and which can be modified dynamically via the 'options' section of the web interface. Only the first set need to be completed with zmconfig at this stage. If you want to change just a few options and can't access the options dialog via the @@ -204,14 +212,10 @@ typo and misspell an option. Among the first questions zmconfig.pl asks you are to do with the database and the next thing you should do is create it and -the associated database users. You may notice that there are -two sets of users and passwords. This is because the streaming -server and utility binaries require only read access to the -database so you may wish to create both a full access user and -a limited access user. You can of course set both to the full -access user. The included schema (zmschema.sql) can be used to -actually create the tables required. The database is usually -called just 'zm'. +the associated database user. The included schema +(zmschema.sql) can be used to actually create the tables +required. The database is usually called just 'zm' but can be +anything you like. If you are a first time user the first run of zmconfig.pl will warn you about the missing database, you can ignore those @@ -229,7 +233,7 @@ ZoneMinder you had installed previously. So if you are going from version 0.9.7 to version 0.9.11 you would run the scripts for all intervening versions to get to the current one, i.e. zmalter-0.9.7.sql, zmalter-0.9.8.sql, zmalter-0.9.9.sql and -zmalter0.9.10.sql. Additionally from version 1.19.5 you can +zmalter0.9.10.sql. Alternatively from version 1.19.5 you can use the zmupdate.pl script to do all the updating for you, this will include all the database changes plus any other tweaks necessary to upgrade to the latest version. To use it @@ -238,12 +242,12 @@ you should type zmupdate.pl -version= [--user= -- pass=] -where `previous version' relates to the version of ZM you are +where 'previous version' relates to the version of ZM you are upgrading from, 1.19.4 for example. All updates from that versions onwards will be applied, however zmupdate.pl will -only work with upgrades from 1.19.0 onwards. The `user' and -`pass' options allow you to specify a database user and -password with sufficient privilege to `alter' the structure of +only work with upgrades from 1.19.0 onwards. The 'user' and +'pass' options allow you to specify a database user and +password with sufficient privilege to 'alter' the structure of the database. This is not necessarily the database user you use for ZoneMinder itself as specified in the section below. @@ -362,7 +366,7 @@ as follows. zmupdate.pl - Currently this script is responsible for checking whether a new version of ZoneMinder is available and other miscellaneous actions related to upgrades and - migrations. It is also intended to be a `one stop shop' for + migrations. It is also intended to be a 'one stop shop' for any upgrades and will execute everything necessary to update your installation to a new version. @@ -381,18 +385,22 @@ as follows. generic solution to external triggering of alarms. It can handle external connections via either internet socket, unix socket or file/device interfaces. Currently you have - to configure these using the `sources' array in the script + to configure these using the 'sources' array in the script itself though ultimately I would expect they would be databased. The format of triggers used by zmtrigger.pl is - as follows "||||" where + as follows + "|||||" where ú 'id' is the id number or name of the ZM monitor -ú 'action' is 'on','off' or 'cancel' where 'on' forces an -alarm condition on, 'off' forces an alarm condition off and -'cancel' negates the previous 'on' or 'off'. Ordinarily you -would use 'on' and 'cancel', 'off' would tend to be used to -suppress motion based events. Additionally 'on' and 'off' can -take an additional time offset, e.g. on+20 which automatically -'cancel's the previous action after that number of seconds. +ú 'action' is 'on', 'off', 'cancel' or 'show' where 'on' +forces an alarm condition on, 'off' forces an alarm condition +off and 'cancel' negates the previous 'on' or 'off'. The +'show' action merely updates some auxiliary text which can +optionally be displayed in the images captured by the monitor. +Ordinarily you would use 'on' and 'cancel', 'off' would tend +to be used to suppress motion based events. Additionally 'on' +and 'off' can take an additional time offset, e.g. on+20 which +automatically 'cancel's the previous action after that number +of seconds. ú 'score' is the score given to the alarm, usually to indicate it's importance. For 'on' triggers it should be non- zero, otherwise it should be zero. @@ -402,6 +410,13 @@ for, or source of the alarm e.g. 'Relay 1 open'. Ignored for ú 'text' is a 256 char max additional info field, currently not used for anything though anything passed in here will get saved. Ignored for 'off' or 'cancel' messages. +ú 'showtext' is up to 32 characters of text that can be +displayed in the timestamp that is added to images. The 'show' +action is designed to update this text without affecting +alarms but the text is updated, if present, for any of the +actions. This is designed to allow external input to appear on +the images captured, for instance temperature or personnel +identity etc. Note that multiple messages can be sent at once and should be LF or CRLF delimited. Without customisation zmtrigger.pl is of little use, but if you configure it correctly it can @@ -437,7 +452,7 @@ saved. Ignored for 'off' or 'cancel' messages. Finally, check zm_config.php in the web directory and amend any configuration necessary in there. Most will have already been done by the configuration utilities but some scripts have -a `VERBOSE' flag you can set to get more debug out. +a 'VERBOSE' flag you can set to get more debug out. At this stage typing 'make install' will install everything to the desired locations, you may wish to su to root first @@ -462,7 +477,7 @@ chkconfig --add zm or similar command for your distribution. ZoneMinder will then start up when your machine reboots and can be controlled (by the root user) by doing 'service zm start' or 'service zm -stop' etc. You may need to use the `-levels' parameter to +stop' etc. You may need to use the '-levels' parameter to chkconfig to ensure that ZoneMinder is started when you need it to. @@ -549,8 +564,8 @@ an option that lets you specify whether anyone that goes to the ZoneMinder web pages must authenticate themselves in order to be given permissions to perform certain tasks. If you chose this mode then you will need to log in here. By default a -fully privileged user `admin' has been created with a password -also of `admin'. You should change this password as soon as +fully privileged user 'admin' has been created with a password +also of 'admin'. You should change this password as soon as possible. Once you've logged in, or if you are running in un- @@ -559,7 +574,7 @@ window. This will resize itself to avoid being too intrusive on your desktop. Along the top there are several informational entries like the time of the last update and the current server load. There will also be an indication of the system -state which will probably say `stopped' to start with. This is +state which will probably say 'stopped' to start with. This is a link that you can click on to control the ZoneMinder system as a whole. Below that are various other links including one detailing the current user (in authenticated mode only) and @@ -588,26 +603,38 @@ like. So, next click 'Add New Monitor' to bring up the dialog. You will see a bunch of things you have to fill in. To help you get started on the video configuration the best -thing is to us a tool like 'xawtv' (http://bytesex.org/xawtv/) -to get a picture you're happy with, and to check your camera -works. Then run 'zmu -d -q -v' to get a dump of -the settings (note, you will have to additionally supply a -username and password to zmu if you are running in -authenticated mode). You can then enter these values into the -video related options of the monitor configuration panel. The -'device_no' referred to here is a number corresponding to the -digit at the end of your device file, so /dev/video0 has a -'device_no' of 0 etc. If 'zmu' gives you an error related to -permissions run 'zmfix -a' to make sure you can access all the -video devices. +thing is to use a tool like 'xawtv' +(http://bytesex.org/xawtv/) to get a picture you're happy +with, and to check your camera works. Please note that just +because you can see a video stream in these tools does not +necessarily guarantee that your camera will work with +ZoneMinder. This is because most tools just 'map' the video +image through onto screen memory transparently without +intercepting it, whereas ZoneMinder needs to capture the image +and, usually, inspect it. This is called frame grabbing and to +check it you should use the facility in xawtv, or other tool, +to capture either one or more still images or possibly a +movie. If this works and the images or movie are not garbage +then the chances are that ZoneMinder will work fine also. + +Once you have validated your camera run 'zmu -d -q +-v' to get a dump of the settings (note, you will have to +additionally supply a username and password to zmu if you are +running in authenticated mode). You can then enter these +values into the video related options of the monitor +configuration panel. The 'device_no' referred to here is a +number corresponding to the digit at the end of your device +file, so /dev/video0 has a 'device_no' of 0 etc. If 'zmu' +gives you an error related to permissions run 'zmfix -a' to +make sure you can access all the video devices. 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 +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 option are explained in a +'Save' at the end. The individual option are explained in a little more detail below, -`Monitor' Tab +'Monitor' Tab Name - The name for your monitor. This should be made up of alphanumeric characters (a-z,A-Z,0-9) and hyphen (-) @@ -624,11 +651,11 @@ image analysis is done and so no alarms or events will be generated, ú 'Modect' - or MOtion DEteCTtion. All captured images will be analysed and events generated where motion is detected. -ú `Record' - In this case continuous events of a fixed +ú 'Record' - In this case continuous events of a fixed length are generated regardless of motion which is analogous to a convention time-lapse video recorder. No motion detection takes place in this mode. -ú `Mocord' - This is a hybrid of Modect and Record and +ú 'Mocord' - This is a hybrid of Modect and Record and results in both fixed length events being recorded and also any motion being highlighted within those events. ú 'Nodect' - or No DEteCTtion. This is a special mode @@ -636,50 +663,52 @@ any motion being highlighted within those events. motion detection takes place but events are recorded if external triggers require it. - Generally speaking it is best to choose `Monitor' as an + Generally speaking it is best to choose 'Monitor' as an initial setting here.. 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 + 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 + '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, whereas one would mean that one frame is - skipped between each saved one, two means that two frames - are skipped between each saved one 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. + 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. - Run Mode - Two choices are available here. `Continuous' is + Run Mode - Two choices are available here. 'Continuous' is the usual setting and means that the monitor is expected to be performing the function selected above at all times and should one or more of the daemons fail or not be running it will be automatically restarted. By contrast - `Triggered' means that the decision about whether the + 'Triggered' means that the decision about whether the daemons should actually be active is devolved to an external triggering mechanism. 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 + '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 - expected that other triggers will become available as - necessary. You can also just use `cron' jobs or other + 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. + completely outside of the ZoneMinder settings. The + zmtrigger.pl script is also available to implement custom + external triggering. Source Type - This determines whether the camera is a local one attached to a physical video or USB port on your @@ -687,7 +716,7 @@ any motion being highlighted within those events. one or the other affects which set of options are shown in the next tab. -`Source' Tab (local device) +'Source' Tab (local device) Device Number/Channel - For a local camera enter the device number that your camera is attached to. If it is @@ -730,13 +759,14 @@ any motion being highlighted within those events. 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 not set the orientation here. 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. + 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. -`Source' Tab (remote device) +'Source' Tab (remote device) Remote Host/Port/Path - For remote cameras use these fields to enter the full URL of the camera. Basically if @@ -759,16 +789,19 @@ any motion being highlighted within those events. Orientation - As per local devices. -`Timestamp' Tab +'Timestamp' Tab Timestamp Label Format - This relates to the timestamp - that is applied to each frame. It is a `sprintf' style - string. It is actually passed through sprintf and then + that is applied to each frame. It is a 'strftime' style + string. It is actually passed through strftime and then through printf to add the monitor name so a format of '%%s - %y/%m/%d %H:%M:%S' (note the double % at the beginning) would be recommended though you can modify it if necessary. If you don't want a timestamp or have a camera - that puts one on itself then leave this field blank. + that puts one on itself then leave this field blank. If + you add a second %%s placeholder in the string this 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 @@ -777,11 +810,11 @@ any motion being highlighted within those events. timestamp at the bottom of the image use a value eight less than the image height. -`Buffers' Tab +'Buffers' Tab Image Buffer Size - This option determines how many frames are held in the ring buffer at any one time. The ring - buffer is the storage space where the last `n' images are + 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 @@ -832,18 +865,18 @@ any motion being highlighted within those events. 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 + 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. -`Misc' Tab +'Misc' Tab - Event Prefix - By default events are named `Event-', 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 + 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. @@ -892,7 +925,7 @@ any motion being highlighted within those events. be for you but start with 10 here and adjust it (usually down) later if necessary. -`Control' Tab +'Control' Tab Note: This tab and its options will only appear if you have selected the ZM_OPT_CONTROL option to indicated that @@ -924,6 +957,26 @@ any motion being highlighted within those events. 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 @@ -938,7 +991,7 @@ any motion being highlighted within those events. motion detection for following any movement that the camera may make to track motion. - Return Location - If you camera supports a `home' position + Return Location - If you camera supports a 'home' position or presets you can choose which preset the camera should return to after tracking motion. @@ -948,7 +1001,7 @@ any motion being highlighted within those events. - `X10' Tab + 'X10' Tab Note: This tab and its options will only appear if you have indicated that your system supports the X10 home @@ -956,7 +1009,7 @@ any motion being highlighted within those events. 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. + 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 @@ -1078,12 +1131,12 @@ to view. For instance you may only wish to view outdoor monitors while indoors. You can also choose to view all of them. If you choose a group then your selection will be remembered via a cookie and will be used until you change it. -You can call your groups anything you like, though `Mobile' +You can call your groups anything you like, though 'Mobile' has a special meaning (see Mobile Devices below). There may -also be a `Cycle' link which allows you to cycle through a +also be a 'Cycle' link which allows you to cycle through a shot from each of your monitors (in the selected group unless they are switched off) and get a streamed or still image from -each in turn. Similarly if you see a link titled `Montage' it +each in turn. Similarly if you see a link titled 'Montage' it will allow you view all your active enabled cameras (in the selected group) simultaneously. Be aware however that this can consume large amounts of bandwidth and CPU so should not be @@ -1093,7 +1146,7 @@ used continuously unless you have resource to burn. 6.2. Defining Zones The next important thing to do with a new monitor is set up Zones for it to use. By default you'll already have one -created for you when you created your monitor but you might +generated for you when you created your monitor but you might want to modify it or add others. Click on the Zones column for your monitor and you should see a small popup window appear which contains an image from your camera overlain with a @@ -1204,8 +1257,8 @@ are as follows. Units - This setting which details whether certain of the following settings are in Pixels or Percent, where - `Percent' refers to a percentage area of the zone itself. - In general `Pixels' is more precise whereas percentages + 'Percent' refers to a percentage area of the zone itself. + In general 'Pixels' is more precise whereas percentages are easier to use to start with or if you change image sizes frequently. If you change this setting all appropriate values below are redisplayed in the correct @@ -1240,7 +1293,7 @@ are as follows. alarm checking that will take place, and more specifically what tests are applied to determine whether a frame represents an alarm or not. The three options are - `AlarmPixels', `FilteredPixels' and `Blobs' and depending + 'AlarmPixels', 'FilteredPixels' and 'Blobs' and depending on which option is chosen some of the following other settings may become unavailable. The first of these indicates that only a count of individual alarmed pixels @@ -1249,14 +1302,14 @@ are as follows. remove isolated pixels (see below) before being counted, and the third uses a more sophisticated analysis which is designed to aggregate alarmed pixels into continuous - groups, or `blobs'. Blob analysis is the method ZoneMinder + groups, or 'blobs'. Blob analysis is the method ZoneMinder has always used previously (before it became optional) and so this is the default. However this method takes slightly longer and so if you find that one of the other methods works just as well for you and you wish to maximise performance you can opt for that instead. Some of the more useful alarm related features such as highlighted analysis - images are only available with the `Blob' setting. + images are only available with the 'Blob' setting. Min/Maximum Pixel Threshold - These setting are used to define limits for the difference in value between a pixel @@ -1341,7 +1394,7 @@ change from one to the other (if available) at the centre of the top heading. Also along the top are a handful of other links. These let you change the scale of the image stream, modify image settings (for local devices) or close the window. -If you have cameras that can be controlled, a `Control' link +If you have cameras that can be controlled, a 'Control' link should also be preset which is described below. The image should be self-explanatory but if it looks like @@ -1353,13 +1406,13 @@ frame that just contains a status; this will be 'Idle', and what's going on in the field of view. Idle means nothing is happening, Alarm means there is an alarm in progress and Alert means that an alarm has happened and the monitor is -`cooling down', if another alarm is generated in this time it +'cooling down', if another alarm is generated in this time it will just become part of the same event. These indicators are colour coded in green, red and amber. By default if you have minimised this window or opened other windows in front it will pop up to the front if it goes to -Alarm state. This behaviour can be turned off in `options' if +Alarm state. This behaviour can be turned off in 'options' if required. You can also specify a sound file in the configuration, which will be played when an alarm occurs to alert you to the fact if you are not in front of your @@ -1402,7 +1455,7 @@ indication of how major the event was. 6.4. Controlling Monitors If you have defined your system as having controllable monitors and you are looking at a monitor that is configured -for control, then clicking on the `Control' link along the top +for control, then clicking on the 'Control' link along the top of the window will change the short event listing area to a control area. The capabilities you have defined earlier determine exactly what is displayed in this window. Generally @@ -1433,7 +1486,7 @@ image you click on defines the direction and the distance away from the centre of the image determines the speed. As it is not always very easy to estimate direction near the centre of the image, the active area does not start until a short -distance away from the centre, resulting in a `dead' zone in +distance away from the centre, resulting in a 'dead' zone in the middle of the image. @@ -1488,7 +1541,7 @@ perl and so are parsed by the Date::Manip package. Not all date formats are available in both so if you are saved your filter to do automatic deletions or other tasks you should make sure that the date and time format you use is compatible -with both methods. The safest type of format to use is `-3 +with both methods. The safest type of format to use is '-3 day' or similar with easily parseable numbers and units are in English. @@ -1500,12 +1553,12 @@ elements, Disk Blocks and Disk Percent which don't directly relate to the events themselves but to the disk partition on which the events are stored. These allow you to specify an amount of disk usage either in blocks or in percentage as -returned by the `df' command. They relate to the amount of +returned by the 'df' command. They relate to the amount of disk space used and not the amount left free. Once your filter is specified, clicking 'submit' will filter the events according to your specification. As the disk based elements are not event related directly if you create a filter and -include the term `DiskPercent > 95' then if your current disk +include the term 'DiskPercent > 95' then if your current disk usage is over that amount when you submit the filter then all events will be listed whereas if it is less then none at all will. As such the disk related terms will tend to be used @@ -1553,7 +1606,14 @@ results to the amount of events you want deleted in each pass until the disk usage is at an acceptable level. If you do not do this then the first pass when the disk usage is high will match, and then delete, all events unless you have used other -criteria inside of limits. +criteria inside of limits. ZoneMinder ships with a sample +filter already installed, though disabled. The PurgeWhenFull +filter can be used to delete the oldest events when your disk +starts filling up. To use it you should select and load it in +the filter interface, modify it to your requirements, and then +save it making you sure you check the 'Delete Matching Events' +option. This will then run in the background and ensure that +your disk does not fill up with events. 6.6. Viewing Events @@ -1643,7 +1703,7 @@ The various options you can specify are displayed in a tabbed dialog with each group of options displayed under a different heading. Each option is displayed with its name, a short description and the current value. You can also click on the -`?' link following each description to get a fuller +'?' link following each description to get a fuller explanation about each option. This is the same as you would get from zmconfig.pl. A number of option groups have a master option near the top which enables or disables the whole group @@ -1651,7 +1711,7 @@ so you should be aware of the state of this before modifying options and expecting them to make any difference. If you have changed the value of an option you should then -`save' it. A number of the option groups will then prompt you +'save' it. A number of the option groups will then prompt you to let you know that the option(s) you have changed will require a system restart. This is not done automatically in case you will be changing many values in the same session, @@ -1661,7 +1721,7 @@ that web and some scripts will pick up the new changes immediately but some of the daemons will still be using the old values and this can lead to data inconsistency or loss. -One of the options you may notice in the `System' tab allows +One of the options you may notice in the 'System' tab allows you to specify the default language for your installation of ZoneMinder. Versions 1.17.0 and later support multiple languages but rely on users to assist in creating language @@ -1672,7 +1732,7 @@ given then UK English is assumed. Most languages will be specified in this nn_mm format and to check which languages are available look for files named zm_lang_*.php in the ZoneMinder build directory where the parts represented by the -`*' would be what you would enter as a language. This is +'*' would be what you would enter as a language. This is slightly unwieldy and will probably be improved in future to make it easier to determine language availability. On checking which languages are available it may be that your preferred @@ -1682,7 +1742,7 @@ may be included in future releases. All the language elements are given in the zm_lang_en_gb.php file along with a few notes to help you understand the format. -As mentioned above, you may also see a `users' tab in the +As mentioned above, you may also see a 'users' tab in the Options area. In this section you will see a list of the current users defined on the system. You can also add or delete users from here. It is recommended you do not delete @@ -1701,41 +1761,38 @@ is done in the same way as for the system default language described above. There are also four values that define the user permissions, -these are `stream', `events', `monitors' and `system' Each can -have values of `none', `view' or `edit' apart from `stream' -which has no `edit' setting. These values cover access to the -following areas; `stream' defines whether a user is allowed to -view the `live' video feeds coming from the cameras. You may +these are 'stream', 'events', 'monitors' and 'system' Each can +have values of 'none', 'view' or 'edit' apart from 'stream' +which has no 'edit' setting. These values cover access to the +following areas; 'stream' defines whether a user is allowed to +view the 'live' video feeds coming from the cameras. You may wish to allow a user to view historical events only in which -case this setting should be `none'. The `events' setting +case this setting should be 'none'. The 'events' setting determines whether a user can view and modify or delete any -retained historical events. The `monitors' setting specifies +retained historical events. The 'monitors' setting specifies whether a user can see the current monitor settings and change -them. Finally the `system' setting determines whether a user +them. Finally the 'system' setting determines whether a user can view or modify the system settings as a whole, such as options and users or controlling the running of the system as a whole. As well as these settings there is also a monitor ids setting that can be used for non-'system' users to restrict them to only being able to access streams, events or monitors for the given monitors ids as a comma separated list with no -spaces. If a user with `monitors' edit privileges is limited +spaces. If a user with 'monitors' edit privileges is limited to specific monitors here they will not be able to add or delete monitors but only change the details of those they have -access to. If a user has `system' privileges then the -`monitors ids' setting is ignored and has no effect.' +access to. If a user has 'system' privileges then the +'monitors ids' setting is ignored and has no effect.' -That's pretty much is it for the tour. You should experiment +That's pretty much is it for the tour, though there is a lot +more to ZoneMinder as you will discover. You should experiment with the various setting to get the results you think are -right for your. Naturally, letting thousands of events build -up is not good for the database or your file system so you -should endeavour to either prevent spurious events from being -generated in the first place or ensure that you housekeep them -strictly. +right for your requirements. 7. Camera Control -Version 1.21.0 of ZoneMinder introduces a new feature, +Version 1.21.0 of ZoneMinder introduced a new feature, allowing you to control cameras from the web interface and to some extent automatically. Pan/Tilt/Zoom (PTZ) cameras have a wide range of capabilities and use a large number of different @@ -1751,7 +1808,7 @@ camera supports. There are a very large number of capabilities that may be supported and it is very important that the entries in this table reflect the actual abilities of the camera. A small number of example capabilities are included in -ZoneMinder, these can be used `as is' or modified. +ZoneMinder, these can be used 'as is' or modified. 2) Control Scripts - ZoneMinder itself does not generally provide the ability to send commands to cameras or receive @@ -1762,7 +1819,7 @@ are provided in ZoneMinder which support a number of serial or network protocols but it is likely that for many cameras new scripts will have to be created. These can be modelled on the example ones, or if control commands already exist from other -applications, then the script can just act as a `glue' layer +applications, then the script can just act as a 'glue' layer between ZoneMinder and those commands. It should be emphasised that the control and capability @@ -1787,7 +1844,7 @@ If you have a camera that supports PTZ controls and wish to use it with ZoneMinder then the first thing you need to do is ensure that it has an accurate entry in the capabilities table. To do this you need to go to the Control tab of the -Monitor configuration dialog and select `Edit' where it is +Monitor configuration dialog and select 'Edit' where it is listed by the Control Type selection box. This will bring up a new window which lists, with a brief summary, the existing capabilities. To edit an existing capability to modify select @@ -1798,7 +1855,7 @@ tabs along the top and forms fields below. In the case of the capabilities table there are a large number of settings and tabs, the mean and use of these are briefly explained below. -`Main' Tab +'Main' Tab Name - This is the name of the control capability, it will usually make sense to name capabilities after the camera model or protocol being used. @@ -1816,7 +1873,7 @@ tabs, the mean and use of these are briefly explained below. Can Sleep - The camera can be put to sleep. Can Reset - The camera can be reset to a previously defined state. -`Move' Tab +'Move' Tab Can Move - The camera is able move, i.e. pan or tilt. Can Move Diagonally - The camera can move diagonally. Some devices can move only vertically or horizontally at a @@ -1831,7 +1888,7 @@ tabs, the mean and use of these are briefly explained below. Can Move Continuous - The camera can move continuously in a defined direction until told to stop or the movement limits are reached, e.g. left. -`Pan' Tab +'Pan' Tab Can Pan - The camera can pan, or move horizontally. Min/Max Pan Range - If the camera supports absolute motion this is the minimum and maximum pan co-ordinates that may @@ -1846,9 +1903,9 @@ tabs, the mean and use of these are briefly explained below. Has Turbo Pan - The camera supports an additional turbo pan speed. Turbo Pan Speed - The actual turbo pan speed. -`Tilt' Tab - Definition of Tilt capabilities, fields as for `Pan' tab. -`Zoom' Tab +'Tilt' Tab + Definition of Tilt capabilities, fields as for 'Pan' tab. +'Zoom' Tab Can Zoom - The camera can zoom. Can Zoom Absolute - The camera can zoom to an absolute position. @@ -1866,23 +1923,23 @@ tabs, the mean and use of these are briefly explained below. speed. Min/Max Zoom Speed - The minimum and maximum zoom speed supported. -`Focus' Tab - Definition of Focus capabilities, fields as for `Zoom' +'Focus' Tab + Definition of Focus capabilities, fields as for 'Zoom' tab, but with the following additional capability. Can Auto Focus - The camera can focus automatically. -`White' Tab +'White' Tab Definition of White Balance capabilities, fields as for - `Focus' tab. -`Iris' Tab + 'Focus' tab. +'Iris' Tab Definition of Iris Control capabilities, fields as for - `Focus' tab. -`Presets' Tab + 'Focus' tab. +'Presets' Tab Has Presets - The camera supports preset positions. Num Presets - How many presets the camera supports. If the camera supports a huge number of presets then it makes sense to specify a more reasonable number here, 20 or less is recommended. - Has Home Preset - The camera has a defined `home' + Has Home Preset - The camera has a defined 'home' position, usually in the mid point of its range. Can Set Presets - The camera supports setting preset locations via its control protocol. @@ -1921,6 +1978,11 @@ defined below, monitor definition. This will usually be a hostname or ip address for network cameras or a simple numeric camera id for other cameras. + --autostop= - This indicates whether an automatic + timeout should be applied to 'stop' the given command. It + will only be included for 'continuous' commands, as listed + below, and will be a timeout in decimal seconds, probably + fractional. --command= - This specifies the command that the script should execute. Valid commands are given below. @@ -1953,7 +2015,7 @@ defined below, --preset= - This specifies the particular preset that relevant commands should operate on. -The `command' option listed above may take one of the +The 'command' option listed above may take one of the following commands as a parameter. wake - Wake the camera. @@ -1973,8 +2035,8 @@ following commands as a parameter. move_abs_ - Move to a specified absolute location. The direction element gives a hint to the direction to go but can be omitted. If present it will be - one of `up', `down', `left', `right', `upleft', `upright', - `downleft' or `downright'. + one of 'up', 'down', 'left', 'right', 'upleft', 'upright', + 'downleft' or 'downright'. move_rel_ - Move a specified amount in the given direction. @@ -1987,7 +2049,7 @@ following commands as a parameter. zoom_abs_ - Zoom to a specified absolute zoom position. The direction element gives a hint to the direction to go but can be omitted. If present it will be - one of `tele' or `wide'. + one of 'tele' or 'wide'. zoom_rel_ - Zoom a specified amount in the given direction. @@ -2004,7 +2066,7 @@ following commands as a parameter. focus_abs_ - Focus to a specified absolute focus position. The direction element gives a hint to the direction to go but can be omitted. If present it will be - one of `near' or `far'. + one of 'near' or 'far'. focus_rel_ - Focus a specified amount in the given direction. @@ -2015,16 +2077,16 @@ following commands as a parameter. focus_stop - Stop any focusing which may be in progress. white_ - As per the focus commands, except - that direction may be `in' or `out'. + that direction may be 'in' or 'out'. iris_ - As per the focus commands, except that - direction may be `open' or `close'. + direction may be 'open' or 'close'. preset_set - Set the given preset to the current location. preset_goto - Move to the given preset. - preset_home - Move to the `home' preset. + preset_home - Move to the 'home' preset. @@ -2068,7 +2130,7 @@ please let me know (or better still send me the phone!). If you wish to use the XHTML-MP interface to ZoneMinder there is no extra configuration required to enable it per se. However ZoneMinder needs to be able to figure out what kind of -content to deliver to particular browsers and so you have two +content to deliver to particular browsers, so you have two choices. You can either edit zm.php and include a definition that corresponds to your phone describing a small number of basic capabilities, you will see a couple of examples already @@ -2083,11 +2145,11 @@ ZoneMinder itself only has to deal with these capabilities and not the individual phone types. To use WURFL you should install the php files in the same -directory as ZoneMinder and then create a `wurfl' sub- +directory as ZoneMinder and then create a 'wurfl' sub- directory and ensure it is readable and writeable (or preferably owned by) your web server user. You should put the wurfl.xml file in there. One other thing you may need to -change, as the xml file is quite large, is the `memory_limit' +change, as the xml file is quite large, is the 'memory_limit' setting in php.ini as the default setting of 8Mb may be too small. Once you've done this you should find that your phone or device is recognised and if it can support XHTML-MP it will @@ -2095,7 +2157,7 @@ receive that interface. If your phone is very new, or you are using an old version of the XML file you might find that it is not present however. The WURFL library uses a caching strategy to avoid reloading the whole XML file each time so check if a -sensible looking cache file has been created in the `wurfl' +sensible looking cache file has been created in the 'wurfl' sub-directory also check the wurfl.log in the same place. The WURFL is a third party application and as such I am unable @@ -2107,7 +2169,7 @@ me know and I would be pleased to hear about it. As support for cookies in mobile devices is patchy at best, the groups feature is not fully implemented in the XHTML-MP -views. Instead if there is a group called `Mobile' already +views. Instead if there is a group called 'Mobile' already defined then that group will always be effective, if not then all monitors available to the logged in user will be visible, @@ -2122,14 +2184,17 @@ don't work then check the ZoneMinder FAQ at http://www.zoneminder.com/faq.html and then the forums at http://www.zoneminder.com/forums.html first and see if anyone has had the same problem in the past. If not then feel free to -get in touch and I'll see if I can suggest something else. The -best places to look for errors are in the system error log -(normally /var/log/messages on RedHat), the ZoneMinder logs, -and the web server log (/var/log/httpd/error_log unless -otherwise defined). There should be something in one of those -that gives you some kind of tip off. +get in touch and I'll see if I can suggest something else. . +Please ensure that you read the posting guidelines and go +through the steps listed below before posting or mailing +though. The best places to look for errors are in the system +error log (normally /var/log/messages on RedHat), the +ZoneMinder logs, and the web server log +(/var/log/httpd/error_log unless otherwise defined). There +should be something in one of those that gives you some kind +of tip off. -Some things to check. +Some things to check first. o Device configuration. If you can't get your cameras to work in ZoneMinder, firstly make sure that you have the @@ -2140,7 +2205,7 @@ Some things to check. check the system logs (usually /var/log/messages) for any video configuration errors. If you get some and you're sure they're not a problem then switch off ZM_STRICT_VIDEO_CONFIG - in zmconfig.pl or the `options' tab. + in zmconfig.pl or the 'options' tab. o Start simple. Begin with a single monitor and single zone. You can run the zmc capture daemon from the command line @@ -2162,7 +2227,13 @@ this. Also since the daemons are started by your web server, if it dies or is shut down then the daemons may disappear. In this version the daemons are run under the control of a script which should trap expected signals but it is possible this -doesn't cover all circumstances. +doesn't cover all circumstances. If everything else works but +you can't get images in your browser a likely cause is a +mismatch between where your web server expects to execute CGI +scripts and where you have installed the zms streaming server. +Check your server configuration for the correct CGI location +and ensure you have supplied the same directory to the +ZoneMinder configure script via the -with-cgidir option. o One of the more common errors you can see in the log files is of the form 'Can't shmget: Invalid argument'. Generally speaking this is caused by an attempt to allocate an @@ -2177,14 +2248,17 @@ increase the maximum amount of shared memory available. If you are using RedHat then you can get details on how to change these settings at http://www.redhat.com/docs/manuals/database/RHDB-2.1- -Manual/admin_user/kernel-resources.html -o You should be able to use a similar procedure with other +Manual/admin_user/kernel-resources.html. +o You should be able to use a similar procedure with other distributions to modify the shared memory pool without kernel -recompilations though in some cases this may be necessary. -Note, this error also sometime occurs if you have an old -shared memory segment lying around from a previous run that is -too small. Use the ipcs and ipcrm system commands to check and -remove it if necessary. +recompilations though in some cases this may be necessary. You +can also sometimes get shared memory errors if you have +changed the monitor image size for instance. In this case it +is sometimes that an old process is hanging onto the shared +memory and will not let it be resized. Ensure that you do a +full ZoneMinder restart and/or manually delete the shared +memory segment to check. Use the ipcs and ipcrm system +commands to check and remove segments if necessary. o If you get odd javascript errors and your web console or other screens come up with bits missing then it's possible that there is a problem with the PHP configuration. Since @@ -2221,19 +2295,20 @@ be of the form of where the zma-0 part identifies the daemon and the device it is running on. Entries with INF in are informational and not an error, if you see ERR then it is one, though - not all are fatal. You can prevent this information from - being emitted by setting the ZM_DBG_LEVEL_zmc environment - variable to -1 or less once things are working. If you - want to run any of the daemons from the command line to - test, setting ZM_DBG_PRINT to 1 will output the debug on - the console. You can also use the USR1 and USR2 signals - to increase or decrease the amount of debug being - emitted. + not all are fatal. WAR would indicate a warning. You can + prevent this information from being emitted by setting + the ZM_DBG_LEVEL_zmc environment variable to -1 or less + once things are working. If you want to run any of the + daemons from the command line to test, setting + ZM_DBG_PRINT to 1 will output the debug on the console. + You can also use the USR1 and USR2 signals to increase or + decrease the amount of debug being emitted. o Paths. I admit it, the various paths in ZoneMinder can be - bit of a nightmare. Make sure that they are all correct and - that permissions are such that the various parts of ZoneMinder - can actually run. + bit of a nightmare mainly because some relate to real + directories and others to web paths. Make sure that they are + all correct and that permissions are such that the various + parts of ZoneMinder can actually run. o Missing perl modules. There are various perl modules used by the various scripts. If you get errors about missing ones, @@ -2251,7 +2326,8 @@ will probably need to be root), not install a new Bundle at this point (it can end up building you a whole new perl if you're not careful) if it asks you but everything else should be quite - straightforward. + straightforward. You can often also install perl modules + via your ordinary package manager, e.g. yum or apt. o Unsupported palettes. ZoneMinder currently is designed to use the simple palettes of greyscale and 24 bit as well as now @@ -2310,7 +2386,9 @@ o Cambozola. There appears to be an issue with recent versions of Cambozola that causes image corruption in the stream. If you are getting this then I suggest you stick with version 0.22 which is available from the Downloads section of -www.zoneminder.com. +www.zoneminder.com. You can also switch between using zms or +nph-zms the latter of which supplies non-parsed headers which +should work somewhat better. Also, if you are using IE under Windows and get lots of annoying clicks when various windows refresh then you'll need to edit your registry and remove the value for @@ -2322,7 +2400,157 @@ http://www.zoneminder.com/downloads/noIEClick.reg 10. Change Log -10.1. Release 1.21.0 +10.1. Release 1.21.1 +Menage of various new features and bug fixes. + + o FIX - The HTTP refresh method of updating the Cycle view + was broken. This is now fixed. + +o FIX - There was an arbitrary limit on the size of a blob +due to the dimensioning of the field in the database. This has +been increased to allow all possible blob sizes to be +accounted for. +o FIX - On some platforms there is no definition of the +'round' function. Previous versions of ZM have detected this +and included one if no other is present. However changes in +1.21.0 meant that this did not always happen and the function +went undefined. This has been corrected. +o FEATURE - Support has been added to allow monitors to be +defined as mirrored. Thus images can now be flipped +horizontally or vertically before processing as well as +rotated as in previous versions. +o FIX - Made the 'Options' link only appear if the user has +sufficient permissions. +o FIX - Fixed issue where the PTZ control function to set +camera presets never passed the preset number so preset 1 was +always used. + o FEATURE - A custom title can now be added via the normal + Options dialog (ZM_WEB_TITLE_PREFIX). This title will be used + in all browser windows and allows you to distinguish between + multiple ZM installations for example. + +o FEATURE - Ordinarily ZoneMinder will resize the console +window to fit the number of monitors displayed. If you are +using a tabbed browser this can be a little irritating. A new +option (ZM_WEB_RESIZE_CONSOLE) has been added to control this +behaviour. +o FEATURE - Version 1.21.0 added support for events to be +labelled with Cause and Notes fields. However these could not +be modified directly from the web interface. This has been +amended so that an 'Edit' link is now present in the events +listing. Clicking on this allows you to modify these fields +for one or more events so they can be identified as belonging +to a particular incident. +o FEATURE - There has long been a dichotomy between the +functions that can be applied via interactive filters versus +background saved filters. This release addresses this to some +extent allowing you, for instance, to archive or unarchive +matching events, or edit them as described above. This is not +a complete solution and it is expected that the functionality +will converge further in the future. +o FEATURE - Previously in the c/c++ code accessor functions +had to be called to access the value of configuration options. +This was expensive when done repeatedly so some classes used +cached local variables to avoid this. The configuration has +been rewritten to provide all configuration options as members +of the configuration class which are initialised once on +startup and then can be accessed directly with no further +overhead. +o LANGUAGE - Support for the Danish language has now been +included. Thanks for forum user 'voronwe' for his work on +this. Select dk_dk in the languages preferences to use this +language. + o FEATURE - Events viewed in the events listing view can + now be saved locally by clicking on the 'Export' button. This + creates a tar or zip file of the selected file groups, such as + images, videos etc, as well as, optional, HTML pages + describing the basic details about the event and frame + details. This allows a basic navigation and viewing of the + events outside of the regular ZoneMinder interface. This + format is different, and improved, over that that created in + the background filter function and it is expected that these + functions will converge at some point. + +o FIX - Clearing the 'Track Motion' checkbox in the Control +section of the Monitor configuration would not be saved +resulting in this setting being stuck in an 'on' state. This +has been corrected. +o FIX - The 'Play All' link in the event view allows a +sequence of events to be streamed consecutively. This is fine +in a streamed view but meaningless in the stills view so has +been removed. +o FEATURE - The 'show' trigger command in zmtrigger.pl has +been added to allow miscellaneous externally sourced text to +be displayed in the image timestamps. +o FEATURE - Add the 'Auto Stop Timeout' monitor control +option to allow finer control of Pan/Tilt/Zoom cameras with +support for only basic continuous modes of motion. +o LANGUAGE - The German language files have been updated. +o FEATURE - Support for control of Axis network cameras has +been added. This uses the zmcontrol-axis-v2.pl script and +should work with all Axis PTZ network cameras that use version +2 of the Axis API. + o FEATURE - The zmaudit.pl script has been modified to be + faster and access disk a lot less. Previously it was possible + for this script to frequently thrash disks while determining + timestamps on directories. + +o FEATURE - A contributed patch by Ross Melin has been +included. This gives you the option of using an alternative +mailing method in the zmfilter.pl script if the default method +does not work correctly. To use the new method go to Options- +>Email and set ZM_NEW_MAIL_MODULES to on. +o FIX - Previously the ZM_EMAIL_HOST config was not passed +to the zmfilter.pl script so hosts other than localhost were +not used. This has been fixed. +o LANGUAGE - A translation for the Romanian language has +been added. To use it select ro_ro as the language. +o FIX - In previous versions the path to the zms daemon +from web pages was in the form of a local web path without +hostname. This has been reported as not working with certain +media players where the hostname is not implied, as with +browsers. The paths to the streaming server now always have +the hostname prepended so that they are always a full valid +url. +o FIX - Monitors that are inactive no longer have an active +link for streaming as this has no real purpose. +o FEATURE - An experimental Pelco-P control script has been +added to support PTZ cameras that support this protocol. This +script has not really been tested but is included as a basis +for further development or customisation. +o FIX - The zmfilter.pl script now respects the +ZM_FAST_DELETE option and will fully delete any events rather +than assuming that zmaudit.pl will clear up if it just removes +the primary database record. +o FIX - The montage view layout now correctly utilises the +ZM_MAX_MONTAGE_COLS option when determining the dimensions and +layout of the montage window. +o FEATURE - A contributed patch by forum user 'lazyleopard' +has been included. This allows a specified number of frames to +be discarded to alleviate problems with broken interlaced +frames where multiple cameras share one bttv chip and produce +a 'comb edge' like image. To invoke this option go to Options- +>Config and set ZM_CAPTURES_PER_FRAME to greater than 1, a +value of 3 is recommended in the first instance. +o FEATURE - Several users have reported problems using the +Perl Compatible Regular Expression (PCRE) library, mostly to +do with it not being found or an incorrect version being used. +This version allows an alternative method of parsing the +output from network cameras that does not depend on libpcre at +all. Which method is used is controlled by the option Options- +>Network->ZM_NETCAM_REGEXPS. If this option is on then the +traditional regular expression based parsing is implemented, +provided you have built with libpcre. If the option is off or +libpcre is missing then a more basic parsing is used instead. +This new method should be slightly faster as it does not have +the overhead of regular expression parsing, however this also +makes it slightly more inflexible. If you experience problems +using the new method with your netcam then you should try +switching to the regular expression based method, and report +the issue via the forums, preferably with a snapshot of the +output of your camera. + +10.2. Release 1.21.0 Addition of camera control, plus several bugfixes. o FEATURE - Added support for Pan/Tilt/Zoom and general @@ -2332,9 +2560,9 @@ o FIX - The montage view layout has been modified to allow better dynamic layout of windows. Views should now be laid out in a more logical arrangement. This is a relatively temporary change and the montage view will shortly be rewritten to use -flowing `div' tags which should add more flexibility and be +flowing 'div' tags which should add more flexibility and be less complex. -o FIX - All stream views now have an `alt' tag to highlight +o FIX - All stream views now have an 'alt' tag to highlight which monitor they should be displaying. o FIX - Detection of which markup language to use, HTML or XHTML-MP has now been optimised to ensure theat the test only @@ -2357,7 +2585,7 @@ it has a consistent look and does not display unwanted wrapping. o FIX - A couple of remnant hard coded text elements have been replaced with tokens as they should have been originally. -o FIX - Previously separate `object' and `embed' tags were +o FIX - Previously separate 'object' and 'embed' tags were used for Internet Explorer and non-IE browsers. These have been merged so that browsers will use whichever tag is appropriate. Any player controls that were present should now @@ -2370,13 +2598,13 @@ it was sometimes possible that permission errors would still be issued if they tried to view streams or other elements associated with monitors in their list. This has now been corrected such that any restrictions are applied correctly. -o FIX - Users created with only `view streams' permissions -were presented with a `permission denied' error in the area of +o FIX - Users created with only 'view streams' permissions +were presented with a 'permission denied' error in the area of the Watch window normally containing the recent events list. Whilst this was technically correct it was unnecessary and untidy, and has now been changed just to be blank. -10.2. Release 1.20.1 +10.3. Release 1.20.1 Mostly bug fixes, large and small with a couple of minor features included. @@ -2432,14 +2660,14 @@ how many monitors in list, though there is a minimum size. o FIX - Corrected bug in zmfilter.pl.z which meant that images were not always correctly uploaded. -10.3. Release 1.20.0 +10.4. Release 1.20.0 Improved and added features, several minor bug fixes. o FEATURE - Certain configuration (Mostly database settings) is now stored in a new file zm.conf. This means that database access settings can be changed without recompilation. It also allows the creation of ZoneMinder rpms. Watch - zoneminder.com for details. Thanks for forum user `oskin' for + zoneminder.com for details. Thanks for forum user 'oskin' for his work on this. o FEATURE - The WML interface is now deprecated and the @@ -2449,7 +2677,7 @@ o FEATURE - Monitor groups have now been added allowing subsets of monitors to be viewed independently. o FEATURE - A generic external triggering interface has been included via the zmtrigger.pl script. A new monitor -function `Nodect' has been added to support this. +function 'Nodect' has been added to support this. o FEATURE - Interaction between the web pages and the streaming daemons and other utilities has previously been not as secure as it could have been and open to possible abuse. @@ -2514,14 +2742,14 @@ alarm sound, properly. This has been corrected. etc) to function with ZoneMinder. o FIX - A bug in event streaming when events are of very -short duration has been fixed. Thanks to forum user `reza' for +short duration has been fixed. Thanks to forum user 'reza' for spotting this one. o FIX - A possible exploit in the login page was identified - and has now been fixed. Thanks again to forum user `reza' + and has now been fixed. Thanks again to forum user 'reza' highlighting this problem also. -10.4. Release 1.19.5 +10.5. Release 1.19.5 Various miscellaneous fixes and features. o FIX - Sorting event lists by duration was broken and has @@ -2530,21 +2758,21 @@ Various miscellaneous fixes and features. o FEATURE - The zmfix utility previous corrected file permissions on video device files only. This has been modified to do likewise to the X10 device serial port if enabled. -o FIX - The modification suggested by forum user `oskin' +o FIX - The modification suggested by forum user 'oskin' has been incorporated into the code to try and reduce or remove video for linux errors. o FIX - The remote network camera parsing code has been patched to try -o FIX - The error reported when a `shmget' call fails has +o FIX - The error reported when a 'shmget' call fails has been changed to include further information about the cause. o LANGUAGE - Fixed missing semicolon in German language file. -o FEATURE - Added `<<' and `>>' links to the page selector -in the events list as suggested by forum user `unclerichy'. +o FEATURE - Added '<<' and '>>' links to the page selector +in the events list as suggested by forum user 'unclerichy'. o FEATURE - Brightness, colour, hue and contrast are now saved persistently for a monitor rather than being reset each time the system is restarted. This feature is based on a patch -submitted by forum user `oskin'. +submitted by forum user 'oskin'. o FEATURE - In previous versions the events folder has been keyed by the monitor name. This has caused problems in the past with various characters appearing which are legal in @@ -2570,26 +2798,26 @@ compilation. This version will detect which version of ffmpeg you have and compile accordingly. o FEATURE - You can now specify a prefix for events generated by particular monitors. This will replace the -default `Event-` one. +default 'Event-' one. o FEATURE - If you use filters to send event notification emails you can now have them sent in HTML format. This is done -automatically if your mail body includes a `' token, +automatically if your mail body includes a '' token, o FEATURE - An experimental feature has been added which lets you view several events in sequence. In event listing you can check the events you want to view and then click the -`View' button. This will allow you to navigate through only +'View' button. This will allow you to navigate through only those events in the normal manner (via Prev and Next links) -but also to view them in sequence by clicking on the `Play +but also to view them in sequence by clicking on the 'Play All' link. This will replay each event and then automatically move onto the next one. You can stop this progression at any -time by pressing `Stop' (which only stops the sequence and not +time by pressing 'Stop' (which only stops the sequence and not the currently playing event). The timing of the replay is done depending on the calculated length of the event (plus one second) and so may not exactly correspond to the real event length. In particular this is unlikely to work if replaying events using MPEG video and buffering players as the timing will likely be incorrect. If you are viewing an event but -haven't checked any in the list the `Play All' button will +haven't checked any in the list the 'Play All' button will just work down the current event list. o FIX - A default php error level excluding notice warnings is now explicitly set. @@ -2599,12 +2827,12 @@ been desirable as sometimes glitches and flickers create large numbers of events, however no mechanism existed for limiting this. In this version you can now specify the minimum number of consecutive alarmed frames that are necessary to create an -event. This is the `Alarm Frame Count' described above. Note +event. This is the 'Alarm Frame Count' described above. Note that if an alarm is in progress single isolated alarmed frames will still prolong it and the count only applies to the initial frames that would cause the event. -10.5. Release 1.19.4 +10.6. Release 1.19.4 Language fixes and updates. o FIX - The US English language file was recursively @@ -2618,7 +2846,7 @@ o LANGUAGE - The Argentinian Spanish, Polish and Italian translations have all been updated with tokens introduced in version 1.19.3. -10.6. Release 1.19.3 +10.7. Release 1.19.3 Minor tweaks, fixes and language updates. o FEATURE - All stills views now use the single image mode @@ -2635,7 +2863,7 @@ generates these identifiers. The consequence of this is that many more video formats supported by your version of ffmpeg should now be available via zms. o FEATURE - When viewing a single frame of an event you can -select a `stats' link to view the statistics that apply to +select a 'stats' link to view the statistics that apply to that frame, if you have the RECORD_EVENT_STATS option switched on. This can be used to help configure your zones for optimal motion detection. Previously only pixel count values were @@ -2658,11 +2886,11 @@ event is always recorded. o FIX - If an analysis daemon terminates abnormally or the host computer crashes then events can be left in a state whereby they effectively have zero length and are useless. A -change to zmaudit.pl was made such that any `open' events such +change to zmaudit.pl was made such that any 'open' events such as this which have not been updated for at least five minutes are closed and updated to reflect their actual content so that they may be viewed or saved. Events recovered in this way are -named with a `(r)' mark to help identify them. +named with a '(r)' mark to help identify them. o FIX - In more recent versions of MySQL the password hash generated is 50 characters long, which overflows the previous password field in the database which was only 32 characters @@ -2678,7 +2906,7 @@ misnamed. This is now corrected though you may need to reset the values that were used previously as these will be lost if they had been changed. o FIX - It was previously the case that old images could be -left in the `images' directory for a long period, sometimes +left in the 'images' directory for a long period, sometimes resulting in incorrectly assuming correct operation. A fix was made to zmaudit.pl which modified the previous clean up of old WAP images so that any old images left in this directory are @@ -2689,12 +2917,12 @@ will now be deleted. o FIX - A JavaScript error in the Zone configuration screen was identified and fixed. o LANGUAGE - A Brazilian Portuguese translation has been -supplied by Victor Diago and is available by selecting `pt_br' +supplied by Victor Diago and is available by selecting 'pt_br' as the language type. o LANGUAGE - Updated versions of the Dutch and Argentinian Spanish translations have been included. -10.7. Release 1.19.2 +10.8. Release 1.19.2 Minor features, fixes and language updates. o FEATURE - The default replay rate and live and event @@ -2723,7 +2951,7 @@ installations and upgrades is a sample filter called PurgeWhenFull which can be used to do this. It is initially not set to do anything automatically so if you want to use it, you should load it into the filter selection window, modify it -to your taste and then save it, selecting `auto delete'. +to your taste and then save it, selecting 'auto delete'. Please note that filters created using disk related terms to delete events should always contain a limit term also otherwise it is possible for all events to match and thus be @@ -2803,7 +3031,7 @@ in English. There will shortly be a point release which includes these language updates assuming I can get translations of them in a reasonable timescale. -10.8. Release 1.19.1 +10.9. Release 1.19.1 Minor bugfixes and enhancements. o Ffmpeg Configure Changes. The configure script has been @@ -2834,7 +3062,7 @@ requirement to pass in a username and password to zmu when just querying a device as this was slightly broken and was unnecessary anyway. -10.9. Release 1.19.0 +10.10. Release 1.19.0 Some major enhancements and bugfixes. o MPEG video streaming. ZoneMinder now supports true video @@ -2888,17 +3116,17 @@ between. Bulk frames are only used when no alarm or motion detection activity is taking place and normal frame records are kept otherwise. o Event List Ordering and Scrolling. It was previously the -case that the `Next' and `Prev' buttons on the event view did +case that the 'Next' and 'Prev' buttons on the event view did not always go to the event that was expected and sometimes disappeared altogether. This behaviour has now been modified and these buttons will now take you to the next and previous events in the list which the event was selected from. Thus if -the list was sorted on ascending scores then the `next' event +the list was sorted on ascending scores then the 'next' event is the one below which has a higher score etc. A possibly counterintuitive side effect of this is that as the default -list is sorted by descending time the `next' event is the one +list is sorted by descending time the 'next' event is the one below in the list which will actually be earlier and the -`previous' event is later. So long as you remember that next +'previous' event is later. So long as you remember that next and prev refer to the order of the list you should be ok. o Zone Percentage Sizes. Zone motion detection parameters can be defined either in terms of total pixels or as a @@ -2912,7 +3140,7 @@ existing zones you can run zmupdate.pl with the -z option, though this should be done only once and you should backup your database beforehand in case of error. o Console View System Display. The console display was -slight revamped to indicate disk space usage (via the `df' +slight revamped to indicate disk space usage (via the 'df' command) on the events partition, o Zone Form Validation. Changes applied in version 1.18.0 to prevent invalidate entries in the zone definition form @@ -2938,7 +3166,7 @@ filters they actually got a duplicate. This resulted in several copies of filters all with the same name as the constraint on unique filter names was not present. Well it is now so when upgrading your database all the filters will be -renamed from `myfilter' to `myfilter_' where `' is the +renamed from 'myfilter' to 'myfilter_' where '' is the id number in the database (which is then removed). In general the higher the id number the more recent the filter. So you should go through your filter list deleting old copies and @@ -2960,7 +3188,7 @@ being deleted when monitor was. o A translation for the Dutch (nl_nl) language has been included. -10.10. Release 1.18.1 +10.11. Release 1.18.1 Minor bugfixes. o Filter Monitor Name Bug. A bug was present in the @@ -2979,7 +3207,7 @@ recommended that you review your list of saved filters and delete duplicates before adding any monitor specific terms and resetting the actions for any that remain. -10.11. Release 1.18.0 +10.12. Release 1.18.0 Major optimisations, important new features and some bugfixes. o Optimisations and Performance Improvements. This release @@ -3009,7 +3237,7 @@ Major optimisations, important new features and some bugfixes. and because in some unusual circumstances it may still be more accurate (see the ZM_FAST_IMAGE_BLENDS option for details). Altogether these optimisations (along with other common sense - ones such as not maintaining a reference image in `Record' + ones such as not maintaining a reference image in 'Record' mode where it is not used) significantly reduce the CPU load for most systems, especially when alarms are not in progress. If an alarm is detected then a lot of file system and database @@ -3044,9 +3272,9 @@ filters and delete duplicates before adding any monitor specific terms and resetting the actions for any that remain. o New Filter Operators. Two new filter operators and their inverse have been added. You can now indicate whether a value -is in a set of other values, for example `cat' is in the set -of `cat, dog, cow, horse'. You can also use regular -expressions so `cat' matches `^c.*'. The `not in set' and `not +is in a set of other values, for example 'cat' is in the set +of 'cat, dog, cow, horse'. You can also use regular +expressions so 'cat' matches '^c.*'. The 'not in set' and 'not matches' operators are also available. o Additional Scales. Enhancements to the scaling algorithm mean that non binary scales are now just as easy to apply, @@ -3109,7 +3337,7 @@ could sometimes be 30 or even 45 minutes. This was especially the case with monitors that had low frame rates. This is now fixed. -10.12. Release 1.17.2 +10.13. Release 1.17.2 Minor features, bug fixes and additional languages. o Pending Process Bug. A bug was found whereby a process @@ -3124,7 +3352,7 @@ for by the configure script and it is not used if not present. o Add Max Alarm Threshold. Previously the alarm threshold (which is the amount a pixel has to differ from it's counterpart in the reference image) existed only in a -`minimum' form meaning pixels that were more different +'minimum' form meaning pixels that were more different matched. A maximum has now been added to assist in screening out large changes in brightness. In addition to this a number of new consistency checks have been added to the zone @@ -3148,8 +3376,8 @@ analyse.jpg. This is to allow all images (including diagnostic ones) to be associated with the frame sequence number more easily. This means that old events will no longer be able to be viewed as the wrong image will be being searched for. To -avoid this you can use the new `zmupdate.pl' utility to rename -all your old images by doing `perl zmupdate.pl -r' as an +avoid this you can use the new 'zmupdate.pl' utility to rename +all your old images by doing 'perl zmupdate.pl -r' as an appropriately privileged or root user. o Version checking. ZoneMinder will now optionally check for new versions of itself at zoneminder.com. This is done @@ -3163,8 +3391,8 @@ override it's detection of browser capabilities to prevent the Cambozola Java applet being used. However sometimes the opposite effect was desired and using the applet was preferred to native image handling. This has now been made possible by -making the ZM_CAN_STREAM option tri-state allowing `auto', -`yes' or `no' to be used to provide all alternatives. +making the ZM_CAN_STREAM option tri-state allowing 'auto', +'yes' or 'no' to be used to provide all alternatives. o Alarms Cleared on Exit. In previous versions if an alarm was present when the analysis daemon (zma) exited the alarm would remain flagged. This had little effect except if the @@ -3173,7 +3401,7 @@ alarm flag is now cleared when this daemon exits. o New Languages. Translations for Japanese (ja_jp), French (fr_fr) and Russian (ru_ru) are now included. -10.13. Release 1.17.1 +10.14. Release 1.17.1 Bugfixes and additional languages. o Login Bug. A bug was identified whereby an unauthorised @@ -3196,11 +3424,11 @@ as this is a rarely accessed area and contains a great deal of text. The new format allows individual options to be translated piecemeal as the opportunity arises. -10.14. Release 1.17.0 +10.15. Release 1.17.0 Language changes and other enhancements. o Version Numbering. ZoneMinder version numbers have now - changed. This is to allow more frequent `point' releases which + changed. This is to allow more frequent 'point' releases which are expected to happen for instance whenever new language files are included. Previously all releases had the same version increment so it was difficult to tell the significance @@ -3223,7 +3451,7 @@ zm_lang_nn_mm.php which can be created from the default zm_lang_en_gb.php file. If your language is not included then please consider doing a translation by checking this file and submitting your changes back for inclusion in future releases. -o Syntactic Improvements. Previously setting `NOTICE' +o Syntactic Improvements. Previously setting 'NOTICE' errors on in PHP would flag tens or hundreds of violations in the ZoneMinder web files. Whilst not strictly errors this represented sloppy coding and sometimes covered up genuine @@ -3244,10 +3472,10 @@ function call has been corrected. o Minor Bugs. A number of minor bugs and inconsistencies were corrected. -10.15. Release 0.9.16 +10.16. Release 0.9.16 Major usability enhancement and fixes. - o Run States. Instead of the old `start/stop' links the + o Run States. Instead of the old 'start/stop' links the current system state is now a link which takes you to a dialog which allows you to start, restart or stop the system. You can also save the current run state which basically takes a @@ -3370,7 +3598,7 @@ correctly parsed from command line options passed to zmu. o Event window width variable. Event windows now scale to fit the event image size. -10.16. Release 0.9.15 +10.17. Release 0.9.15 Various bug fixes from the last release and before. o Bandwidth. A bug was introduced in .14 which caused a @@ -3409,7 +3637,7 @@ images written by zma directly were colourised whereas those written by zmf weren't. A change has been made whereby if set all greyscale JPEG images are colourised in all circumstances. -10.17. Release 0.9.14 +10.18. Release 0.9.14 Major new feature and important bug-fixes. o Web configuration. Following many requests and to make @@ -3436,7 +3664,7 @@ has been removed. This module had been removed from zmconfig.pl previously but had lingered in this script. o A bug was found in zmx10.pl causing a crash if time delayed X10 events were used. This has now been fixed. -o Removed use of `zmu' binary from zmwatch.pl and zmx10.pl. +o Removed use of 'zmu' binary from zmwatch.pl and zmx10.pl. Previously these scripts had used zmu to determine last image time and alarm state information. The use of this script was a bit overkill and the introduction of user permissions @@ -3453,7 +3681,7 @@ o All SQL buffers in the C++ code have been enlarged. There was previously an issue with a buffer overflow on certain occasions. -10.18. Release 0.9.13 +10.19. Release 0.9.13 Beta version of several features and fixes, never generally released. @@ -3504,7 +3732,7 @@ windows to restart the refresh process. By using JS refresh timers which are not interrupted these extraneous refreshes have been mostly eliminated. -10.19. Release 0.9.12 +10.20. Release 0.9.12 Mostly bug-fixes with a couple of minor features. o Double first images. Fixed a problem where the first @@ -3532,7 +3760,7 @@ for short deltas. This routine has been changed to allow variable precision and events will now have to be several days long to wrap in this way. o Fixed round detection problem. Although the existence or -otherwise of the `round' function is correctly detected, the +otherwise of the 'round' function is correctly detected, the appropriate header file with the results of this test was not included which was not helpful. This has been corrected. o Fixed monitor rename bug. Renaming a monitor did not @@ -3579,9 +3807,9 @@ o Delete monitor confirm. Due to some unfortunate accidents by users, attempts to delete monitors will now require confirmation. o Detect linmysqlclient.a. Added better detection script -into `configure' top spot when libmysqlclient.a is missing. +into 'configure' top spot when libmysqlclient.a is missing. -10.20. Release 0.9.11 +10.21. Release 0.9.11 Various new features and fixes. o Added stats view - If you have the RECORD_EVENT_STATS @@ -3667,10 +3895,10 @@ o Web colour change - I thought the old red, green and amber text colours were just a bit too gaudy so I've toned them down a bit. Hope you like them! -10.21. Release 0.9.10 +10.22. Release 0.9.10 Many bug-fixes and major feature enhancements. - o Configure `round' bug - Fixed a problem with the + o Configure 'round' bug - Fixed a problem with the configure script that didn't detect if the 'round' function was already declared before try to do it itself. @@ -3687,7 +3915,7 @@ be left behind. o Streamed cycle view - The monitor cycle view (the one where each monitor is displayed sequentially) now supports streams as well as stills. -o New `montage' view - Added a montage view showing all +o New 'montage' view - Added a montage view showing all your cameras simultaneously either streaming or stills. The width of this window (in terms of number of monitors) is a configuration option. @@ -3747,7 +3975,7 @@ o Bugs and pieces - Fixed various bug(ettes) that I came across that that I don't think had been reported or noticed so I don't think we need to talk about them here do we. -10.22. Release 0.9.9 +10.23. Release 0.9.9 Mainly bug-fixes and minor feature enhancements. o Added zmu -q/--query option - There is now a new query @@ -3797,7 +4025,7 @@ was removed in the last version which meant that sometimes the console never go refreshed as it's timing loop was broken. This functionality has now been reinstated. -10.23. Release 0.9.8 +10.24. Release 0.9.8 Several new features and bug-fixes o Upgrade note - If you have installed 0.9.7 and wish to @@ -3871,7 +4099,7 @@ o Monitor window refresh on alarm - When the monitor window is active and an alarm has occurred the most recent alarms list is immediately refreshed to show it. -10.24. Release 0.9.7 +10.25. Release 0.9.7 Yes, a big jump in release number but a lot of changes too. Now somewhat more mature, not really an alpha any more, and a lot of bugs fixed too. @@ -3920,7 +4148,7 @@ o Some of the web views have changed slightly to accommodate the separate events view. o And much much more, probably... -10.25. Release 0.0.1 +10.26. Release 0.0.1 Initial release, therefore nothing new. diff --git a/README.html b/README.html index 00996a03f..8b36304bb 100644 --- a/README.html +++ b/README.html @@ -3,7 +3,7 @@ -ZoneMinder v1.21.0 +ZoneMinder v1.21.1