4001 lines
202 KiB
HTML
4001 lines
202 KiB
HTML
<html xmlns:v="urn:schemas-microsoft-com:vml"
|
||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||
xmlns:w="urn:schemas-microsoft-com:office:word"
|
||
xmlns="http://www.w3.org/TR/REC-html40">
|
||
|
||
<head>
|
||
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
|
||
<meta name=ProgId content=Word.Document>
|
||
<meta name=Generator content="Microsoft Word 9">
|
||
<meta name=Originator content="Microsoft Word 9">
|
||
<link rel=File-List href="./README_files/filelist.xml">
|
||
<title>ZoneMinder v0.9.14</title>
|
||
<!--[if gte mso 9]><xml>
|
||
<o:DocumentProperties>
|
||
<o:Author>Philip Coombes</o:Author>
|
||
<o:LastAuthor>Philip Coombes</o:LastAuthor>
|
||
<o:Revision>2</o:Revision>
|
||
<o:TotalTime>1</o:TotalTime>
|
||
<o:Created>2003-07-08T08:38:00Z</o:Created>
|
||
<o:LastSaved>2003-07-08T08:38:00Z</o:LastSaved>
|
||
<o:Pages>31</o:Pages>
|
||
<o:Words>14155</o:Words>
|
||
<o:Characters>80688</o:Characters>
|
||
<o:Company>Triornis</o:Company>
|
||
<o:Lines>672</o:Lines>
|
||
<o:Paragraphs>161</o:Paragraphs>
|
||
<o:CharactersWithSpaces>99090</o:CharactersWithSpaces>
|
||
<o:Version>9.2720</o:Version>
|
||
</o:DocumentProperties>
|
||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||
<w:WordDocument>
|
||
<w:DoNotHyphenateCaps/>
|
||
<w:DrawingGridHorizontalSpacing>6 pt</w:DrawingGridHorizontalSpacing>
|
||
<w:DrawingGridVerticalSpacing>6 pt</w:DrawingGridVerticalSpacing>
|
||
<w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
|
||
<w:UseMarginsForDrawingGridOrigin/>
|
||
<w:Compatibility>
|
||
<w:UsePrinterMetrics/>
|
||
<w:WW6BorderRules/>
|
||
<w:FootnoteLayoutLikeWW8/>
|
||
<w:ShapeLayoutLikeWW8/>
|
||
<w:AlignTablesRowByRow/>
|
||
<w:ForgetLastTabAlignment/>
|
||
<w:LayoutRawTableWidth/>
|
||
<w:LayoutTableRowsApart/>
|
||
</w:Compatibility>
|
||
<w:DocumentVariables>
|
||
<w:dgnword-docGUID>\'5c'5c'5c'5c'7bEE1F7E29-843F-4EEE-90F5-BC0B80599480\'5c'5c'5c'5c'7d</w:dgnword-docGUID>
|
||
<w:dgnword-eventsink>29938712</w:dgnword-eventsink>
|
||
</w:DocumentVariables>
|
||
</w:WordDocument>
|
||
</xml><![endif]-->
|
||
<style>
|
||
<!--
|
||
/* Font Definitions */
|
||
@font-face
|
||
{font-family:Wingdings;
|
||
panose-1:5 0 0 0 0 0 0 0 0 0;
|
||
mso-font-charset:2;
|
||
mso-generic-font-family:auto;
|
||
mso-font-pitch:variable;
|
||
mso-font-signature:0 268435456 0 0 -2147483648 0;}
|
||
/* Style Definitions */
|
||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||
{mso-style-parent:"";
|
||
margin:0mm;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:12.0pt;
|
||
mso-bidi-font-size:10.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-ansi-language:EN-GB;}
|
||
h1
|
||
{mso-style-next:Normal;
|
||
margin-top:12.0pt;
|
||
margin-right:0mm;
|
||
margin-bottom:12.0pt;
|
||
margin-left:22.7pt;
|
||
text-indent:-22.7pt;
|
||
page-break-before:always;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:1;
|
||
mso-list:l0 level1 lfo1;
|
||
tab-stops:22.7pt;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:14.0pt;
|
||
mso-bidi-font-size:10.0pt;
|
||
font-family:Arial;
|
||
mso-font-kerning:16.0pt;
|
||
mso-ansi-language:EN-GB;
|
||
mso-bidi-font-weight:normal;
|
||
text-decoration:underline;
|
||
text-underline:thick;}
|
||
h2
|
||
{mso-style-next:Normal;
|
||
margin-top:12.0pt;
|
||
margin-right:0mm;
|
||
margin-bottom:6.0pt;
|
||
margin-left:21.75pt;
|
||
text-indent:-21.6pt;
|
||
mso-pagination:widow-orphan;
|
||
page-break-after:avoid;
|
||
mso-outline-level:2;
|
||
mso-list:l0 level2 lfo1;
|
||
tab-stops:36.15pt;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:12.0pt;
|
||
mso-bidi-font-size:10.0pt;
|
||
font-family:Arial;
|
||
mso-ansi-language:EN-GB;
|
||
mso-bidi-font-weight:normal;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
p.MsoHeader, li.MsoHeader, div.MsoHeader
|
||
{margin:0mm;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
tab-stops:center 207.65pt right 415.3pt;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:12.0pt;
|
||
mso-bidi-font-size:10.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-ansi-language:EN-GB;}
|
||
p.MsoFooter, li.MsoFooter, div.MsoFooter
|
||
{margin:0mm;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
tab-stops:center 207.65pt right 415.3pt;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:12.0pt;
|
||
mso-bidi-font-size:10.0pt;
|
||
font-family:"Times New Roman";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-ansi-language:EN-GB;}
|
||
p.MsoTitle, li.MsoTitle, div.MsoTitle
|
||
{margin-top:12.0pt;
|
||
margin-right:0mm;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0mm;
|
||
text-align:center;
|
||
mso-pagination:widow-orphan;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:16.0pt;
|
||
mso-bidi-font-size:10.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-font-kerning:14.0pt;
|
||
mso-ansi-language:EN-GB;
|
||
font-weight:bold;
|
||
mso-bidi-font-weight:normal;
|
||
text-decoration:underline;
|
||
text-underline:double;}
|
||
a:link, span.MsoHyperlink
|
||
{color:blue;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
a:visited, span.MsoHyperlinkFollowed
|
||
{color:purple;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
strong
|
||
{mso-bidi-font-weight:normal;}
|
||
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
|
||
{margin-top:0mm;
|
||
margin-right:0mm;
|
||
margin-bottom:9.0pt;
|
||
margin-left:0mm;
|
||
text-align:justify;
|
||
mso-pagination:widow-orphan;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:10.0pt;
|
||
font-family:Arial;
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
mso-ansi-language:EN-GB;}
|
||
pre
|
||
{margin:0mm;
|
||
margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
mso-layout-grid-align:none;
|
||
punctuation-wrap:simple;
|
||
text-autospace:none;
|
||
font-size:10.0pt;
|
||
font-family:"Courier New";
|
||
mso-fareast-font-family:"Times New Roman";
|
||
mso-bidi-font-family:"Times New Roman";
|
||
color:black;}
|
||
@page Section1
|
||
{size:595.3pt 841.9pt;
|
||
margin:72.0pt 57.6pt 72.0pt 57.6pt;
|
||
mso-header-margin:35.4pt;
|
||
mso-footer-margin:35.4pt;
|
||
mso-footer:url("./README_files/header.htm") f1;
|
||
mso-paper-source:0;}
|
||
div.Section1
|
||
{page:Section1;}
|
||
/* List Definitions */
|
||
@list l0
|
||
{mso-list-id:-5;
|
||
mso-list-template-ids:-677636838;}
|
||
@list l0:level1
|
||
{mso-level-style-link:"Heading 1";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:22.7pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:22.7pt;
|
||
text-indent:-22.7pt;}
|
||
@list l0:level2
|
||
{mso-level-style-link:"Heading 2";
|
||
mso-level-text:"%1\.%2\.";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:21.6pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:21.75pt;
|
||
text-indent:-21.6pt;}
|
||
@list l0:level3
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:none;
|
||
mso-level-text:"";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
margin-left:0mm;
|
||
text-indent:0mm;}
|
||
@list l0:level4
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:none;
|
||
mso-level-text:"";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
margin-left:0mm;
|
||
text-indent:0mm;}
|
||
@list l0:level5
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:none;
|
||
mso-level-text:"";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
margin-left:0mm;
|
||
text-indent:0mm;}
|
||
@list l0:level6
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:none;
|
||
mso-level-text:"";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
margin-left:0mm;
|
||
text-indent:0mm;}
|
||
@list l0:level7
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:none;
|
||
mso-level-text:"";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
margin-left:0mm;
|
||
text-indent:0mm;}
|
||
@list l0:level8
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:none;
|
||
mso-level-text:"";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
margin-left:0mm;
|
||
text-indent:0mm;}
|
||
@list l0:level9
|
||
{mso-level-start-at:0;
|
||
mso-level-number-format:none;
|
||
mso-level-text:"";
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
margin-left:0mm;
|
||
text-indent:0mm;}
|
||
@list l1
|
||
{mso-list-id:17706862;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l1:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l1:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l1:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l1:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l1:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l1:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l2
|
||
{mso-list-id:240068950;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l2:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l2:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l2:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l2:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l2:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l2:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l2:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l2:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l2:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l3
|
||
{mso-list-id:248122421;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l3:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l3:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l3:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l3:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l3:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l3:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l4
|
||
{mso-list-id:361324527;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l4:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l4:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l4:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l4:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l4:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l4:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l4:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l4:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l4:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l5
|
||
{mso-list-id:383331947;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l5:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l5:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l5:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l5:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l5:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l5:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l5:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l5:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l5:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l6
|
||
{mso-list-id:596598494;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l6:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l6:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l6:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l6:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l6:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l6:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l6:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l6:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l6:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l7
|
||
{mso-list-id:899369431;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l7:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l7:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l7:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l7:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l7:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l7:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l8
|
||
{mso-list-id:1257321193;
|
||
mso-list-type:simple;
|
||
mso-list-template-ids:134807553;}
|
||
@list l8:level1
|
||
{mso-level-number-format:bullet;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:18.0pt;
|
||
mso-level-number-position:left;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l9
|
||
{mso-list-id:1743017800;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l9:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l9:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l9:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l9:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l9:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l9:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l9:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l9:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l9:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l10
|
||
{mso-list-id:1771969322;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l10:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l10:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l10:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l10:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l10:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l10:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l10:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l10:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l10:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l11
|
||
{mso-list-id:1802454071;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l11:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l11:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l11:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l11:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l11:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l11:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l12
|
||
{mso-list-id:1822043875;
|
||
mso-list-template-ids:1917612118;}
|
||
@list l12:level1
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:18.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l12:level2
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:36.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l12:level3
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:54.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l12:level4
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:72.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l12:level5
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:90.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l12:level6
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:108.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
@list l12:level7
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0B7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:126.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Symbol;}
|
||
@list l12:level8
|
||
{mso-level-number-format:none;
|
||
mso-level-text:o;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:144.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:"Courier New";}
|
||
@list l12:level9
|
||
{mso-level-number-format:none;
|
||
mso-level-text:\F0A7;
|
||
mso-level-tab-stop:none;
|
||
mso-level-number-position:left;
|
||
mso-level-legacy:yes;
|
||
mso-level-legacy-indent:18.0pt;
|
||
mso-level-legacy-space:6.0pt;
|
||
margin-left:162.0pt;
|
||
text-indent:-18.0pt;
|
||
font-family:Wingdings;}
|
||
ol
|
||
{margin-bottom:0mm;}
|
||
ul
|
||
{margin-bottom:0mm;}
|
||
-->
|
||
</style>
|
||
<!--[if gte mso 9]><xml>
|
||
<o:shapedefaults v:ext="edit" spidmax="3074"/>
|
||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||
<o:shapelayout v:ext="edit">
|
||
<o:idmap v:ext="edit" data="1"/>
|
||
</o:shapelayout></xml><![endif]-->
|
||
</head>
|
||
|
||
<body lang=EN-US link=blue vlink=purple style='tab-interval:36.0pt'>
|
||
|
||
<div class=Section1>
|
||
|
||
<p class=MsoTitle><u><span lang=EN-GB>ZoneMinder v0.9.14<o:p></o:p></span></u></p>
|
||
|
||
<h1 style='page-break-before:auto'><![if !supportLists]><span lang=EN-GB
|
||
style='text-decoration:none;text-underline:none'>1.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Introduction<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Welcome to ZoneMinder, the new
|
||
all-in-one Linux GPL'd security camera solution. A few months back my garage
|
||
was burgled and all my wine and power tools were nicked! 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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder is designed around a series
|
||
of independent components that only function when necessary limiting any 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 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 stall it.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>As well as being fast ZoneMinder is
|
||
designed to be friendly and even more than that, actually useful. As well as
|
||
the fast video interface core it also comes with a user friendly and
|
||
comprehensive PHP based web interface allowing you to control and monitor your
|
||
cameras from home or even at work or on the road. It supports variable web
|
||
capabilities based on available bandwidth. The web interface also allows you to
|
||
view events that your cameras have captured and archive them or review them
|
||
time and again, or delete the ones you no longer wish to keep. The web pages
|
||
directly interact with the core daemons ensuring full co-operation at all
|
||
times. ZoneMinder can even be installed as a system service ensuring it is
|
||
right there if your computer has to reboot for any reason.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The core of ZoneMinder is the capture
|
||
and analysis of images and there is a highly configurable set of parameters that
|
||
allow you to ensure that you can eliminate false positives whilst ensuring that
|
||
anything you don't want to miss will be captured and saved. ZoneMinder allows
|
||
you to define a set of 'zones' for each camera of varying sensitivity and
|
||
functionality. This allows you to eliminate regions that you don't wish to
|
||
track or define areas that will alarm if various thresholds are exceeded in
|
||
conjunction with other zones.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder is fresh off the keyboard and
|
||
so comes with no warranty whatsoever, please try it, send your feedback and if
|
||
you get anything useful out of it please let me know.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder is free but if you do get a
|
||
ZoneMinder up and running and find it useful then please feel free to visit <a
|
||
href="http://www.zoneminder.com/donate.html">http://www.zoneminder.com/donate.html</a>
|
||
where any donations will be appreciated and will help to fund future
|
||
improvements of ZoneMinder.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>2.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Requirements<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder needs a couple of things to
|
||
work.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Firstly, it uses MySQL so you'll need
|
||
that. In order to compile you need to make sure you have a development
|
||
installation and not just a runtime, this is because it needs to use the MySQL
|
||
header files.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder can generate MPEG videos if
|
||
necessary, for this you'll need either ffmpeg (recommended) or the Berkeley MPEG
|
||
encoder. If you don't have either don't worry, as the options will be hidden
|
||
and you'll not miss much really. The web interface uses PHP and so you need
|
||
that in your apache or other web server as well, make sure MySQL support is
|
||
available either statically or as a module. There are also various perl modules
|
||
that you may need that vary depending on which options you choose on
|
||
installation, for more details see later in this document.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Finally, there is quite a bit of image
|
||
streaming in the package. So if you don't have Netscape or another browser that
|
||
supports image streaming natively I recommend you get the excellent Cambozola
|
||
java applet from <span class=MsoHyperlink><span style='color:blue'>http://www.charliemouse.com/code/cambozola/</span></span>
|
||
which will let you view the image stream in Internet Explorer and others.
|
||
Otherwise you're limited to just refreshing still images.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Hardware-wise, ZoneMinder has been used
|
||
with various video and USB cameras with the V4L interface. I don't have a lot
|
||
of cameras myself so I've not had change to test it with a huge ranger personally
|
||
however there is a list of devices that are definitely known to work on the web
|
||
site. Please let me know if your camera is not listed. You do need to have
|
||
Video 4 Linux installed. I've not got too many machines so I've only really
|
||
used it on RedHat, which does have everything there by default I think.
|
||
SlackWare does need a bit more tinkering than other distributions; there is a
|
||
document on the web site describing what users have had to do to get it
|
||
working. Please give me feedback on other distributions not listed on the site.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>3.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Building<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The first thing you need to do is run
|
||
the included configure script to define some initial configuration, just type</span></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>./configure
|
||
--with-mysql=<your MySQL root> --with-webdir=<your web directory>
|
||
--with-cgidir=<your cgi directory><o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>where --with-mysql identifies where you
|
||
have installed MySQL (usually /usr), --with-webdir is the directory to which
|
||
you want to install the PHP files, and --with-cgidir is the directory to which
|
||
you want to install CGI files. These directories could be /var/www/html/zm and
|
||
/var/www/cgi-bin for example. There are also two further arguments you can add
|
||
if your web user and group are not both 'apache'. These are --with-webuser and
|
||
--with-webgroup. Type</span></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>./configure
|
||
<EFBFBD>help<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>for details.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>That's the build configuration sorted
|
||
out. The next thing you have to do is do a little more runtime specific
|
||
configuration. ZoneMinder config is scattered around various files in the
|
||
distribution so to make things easier for you there is a ZoneMinder
|
||
configuration utility included. Type</span></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>perl
|
||
./zmconfig.pl<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>to get it started. It is an interactive
|
||
utility and will prompt you by asking you various questions. For most questions
|
||
typing '?' will give you additional help if you need it. Once you've answered
|
||
all the questions it will write out a configuration file called 'zmconfig.txt'
|
||
and then process various files to substitute the information in them. If you
|
||
run it again it will remember your answers from before by reading
|
||
'zmconfig.txt' before it starts. You can also edit this file directly to change
|
||
values. If you do you can run zmconfig.pl in non-interactive mode by typing</span></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>perl
|
||
./zmconfig.pl -noi<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>which will just read your file and do
|
||
the substations with no questions asked. Also if you are upgrading from version
|
||
0.9.7 (or later) you can copy your old zmconfig.txt file into the current build
|
||
directory before you run zmconfig.pl and it will use your preferences as a
|
||
basis for generating the new ones. There are two classes of options, <20>core<72>
|
||
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
|
||
<EFBFBD>options<EFBFBD> section of the web interface. Only the first set need to be completed
|
||
with zmconfig at this stage.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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'.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you are upgrading from a previous
|
||
version you can use zmalter-x.y.z.sql to upgrade your database and make the
|
||
necessary changes where x.y.z identifies the version of 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. For a new installation the simplest way to create your
|
||
database and users is as follows,</span></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>mysql
|
||
mysql < zmschema.sql<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>mysql
|
||
mysql<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>grant
|
||
select,insert,update,delete on <your database name>.* to '<your first
|
||
username>'@localhost identified by '<your first password>';<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>grant
|
||
select on <your database name>.* to '<your second
|
||
username>'@localhost identified by '<your second password>'<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>quit<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>mysqladmin
|
||
reload<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You may need to supply a username and
|
||
password to the mysql commands in the first place to give yourself sufficient
|
||
privileges to perform the required commands. If you want to host your database
|
||
on a different machine than that which ZoneMinder is running on then use the
|
||
hostname of the remote machine instead of localhost.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Then just type <i style='mso-bidi-font-style:
|
||
normal'>'make'</i> and off you go.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>4.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Installation<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Once the build has completed you should
|
||
have several shiny new binaries. I will now briefly describe what each of them
|
||
does.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmc</span></b><span lang=EN-GB> - This is the
|
||
ZoneMinder Capture daemon. This binary's job is to sit on a video device and such
|
||
frames off it as fast as possible, this should run<span style="mso-spacerun:
|
||
yes"><EFBFBD> </span>at more or less constant speed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zma</span></b><span lang=EN-GB> - This is the
|
||
ZoneMinder Analysis daemon. This is the component that goes through the
|
||
captured frames and checks them for alarming events. It generally keeps up with
|
||
the zmc but if very busy may skip some frames to prevent it falling behind.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmf</span></b><span lang=EN-GB> - This is the
|
||
ZoneMinder Frame daemon. This is an optional daemon that can run in concert
|
||
with the Analysis daemon and whose function it is to actually write captured
|
||
frames to disk. This frees up the analysis to do more analysis (!) and so keep
|
||
up with the capture daemon better. If it isn<73>t running or dies then the
|
||
Analysis daemon just writes them itself.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zms</span></b><span lang=EN-GB> - This is the
|
||
ZoneMinder Streaming server. The web interface connects with this to get
|
||
real-time or historical streamed images.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmu</span></b><span lang=EN-GB> - This is the
|
||
ZoneMinder Utility. It's basically a handy command line interface to several
|
||
useful functions. It<49>s not really meant to be used by anyone except the web
|
||
page (there's only limited 'help' in it so far) but can be if necessary,
|
||
especially for debugging video problems.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmfix</span></b><span lang=EN-GB> - This is a small
|
||
binary that exists only to ensure that the video device files can be read by
|
||
the main capture daemons. It is often the case that these device files are set
|
||
to be accessible by root only on boot. This binary runs setuid and ensures that
|
||
they have appropriate permissions. This is not a daemon and runs only on system
|
||
start and then exits.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>As well as this there are the web PHP
|
||
files in the web directory and some perl scripts in the scripts directory, only
|
||
one of which may actually be used in a minimal installation. These scripts all
|
||
have some configuration at the top of the files which should be viewed and
|
||
amended if necessary and are as follows.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmpkg.pl</span></b><span lang=EN-GB> - This is the
|
||
ZoneMinder Package Control script. This is used by the web interface and
|
||
service scripts to control the execution of the system as a whole.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmdc.pl</span></b><span lang=EN-GB> - This is the
|
||
ZoneMinder Daemon Control script. This is used by the web interface and the
|
||
zmpkg.pl script to control and maintain the execution of the capture and
|
||
analysis daemons, amongst others. You should not need to run this script
|
||
yourself.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmfilter.pl</span></b><span lang=EN-GB> - This script
|
||
controls the execution of saved filters and will be started and stopped by the
|
||
web interface based on whether there are filters that have been defined to be
|
||
autonomous. This script is also responsible for the automatic uploading of
|
||
events to a 3rd party server.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmaudit.pl</span></b><span lang=EN-GB> - This script
|
||
is used to check the consistency of the event file system and database. It can
|
||
delete orphaned events, i.e. ones that appear in one location and not the other
|
||
as well as checking that all the various event related tables are in line. It
|
||
can be run interactively or in batch mode either from the command line or a
|
||
cron job or similar. In the zmconfig.pl there is an option to specify fast
|
||
event deletes where the web interface only deletes the event entry from the
|
||
database itself. If this is set then it is this script that tidies up the rest.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmx10.pl</span></b><span lang=EN-GB> - This is an
|
||
optional script that can be used to initiate and monitor X10 Home Automation
|
||
style events and interface with an alarm system either by the generation of X10
|
||
signals on ZoneMinder events or by initiating ZoneMinder monitoring and capture
|
||
on receipt of X10 signals from elsewhere, for instance the triggering of an X10
|
||
PIR. For example I have several cameras that don<6F>t do motion detection until I
|
||
arm my alarm system whereupon they switch to active mode when an X10 signal is
|
||
generated by the alarm system and received by ZoneMinder.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zmwatch.pl</span></b><span lang=EN-GB> - This is a
|
||
simple script purely designed to keep an eye on the capture daemons and restart
|
||
them if they lockup. It has been known for sync problems in the video drivers
|
||
to cause this so this script makes sure that nothing important gets missed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>zm</span></b><span lang=EN-GB> - This is the
|
||
(optional) ZoneMinder init script, see below for details.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>At this stage typing 'make install' will
|
||
install everything to the desired locations, you may wish to su to root first
|
||
though. The installation routine will copy the binaries and scripts to your
|
||
chosen install location, usually /usr/local/bin and then move zms to your
|
||
cgi-bin area. It will then copy the web files to your chosen directory and
|
||
ensure they have the right permissions. Finally it tries to link zm.php to
|
||
index.php but will not overwrite an existing file if it exists.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The 'zm' script does not get installed
|
||
automatically as it is not necessary for the operation of the ZoneMinder setup
|
||
per se. However if you want to ensure that the ZoneMinder daemons are started
|
||
on reboot etc copy it to your init.d directory, usually something like /etc/rc.d/init.d
|
||
and then add it by doing</span></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'><span lang=EN-GB>/sbin/chkconfig
|
||
--add zm<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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 <i style='mso-bidi-font-style:normal'>'service
|
||
zm start'</i> or <i style='mso-bidi-font-style:normal'>'service zm stop'</i> etc.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Now start your web browser and point it
|
||
at your zm.php and off you go.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Tutorial<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>What you see now (and subsequently)
|
||
depends on whether you chose to run ZoneMinder in authenticated mode or not.
|
||
This is an option that lets you specify whether anyone that goes to the
|
||
ZoneMinder web pages must authenticate themself 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 <20>admin<69> has been created
|
||
with a password also of <20>admin<69>. You should change this password as soon as
|
||
possible.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Once you<6F>ve logged in, or if you are
|
||
running in un-authenticated mode, you will now see the ZoneMinder Console
|
||
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 a <20>start<72> or <20>stop<6F> link
|
||
depending on the current state. Below that are various other links including
|
||
one detailing the current user (in authenticated mode only) and one allowing
|
||
you to configure your bandwidth. This last one enables you to optimise your
|
||
settings depending on where you are, the actual values relating to this are
|
||
defined in the options. If you are using a browser on the same machine or
|
||
network then choose high, over a cable or DSL link maybe choose medium and over
|
||
a dialup choose low. You can experiment to see which is best. This setting is
|
||
retained on a per machine basis with a persistent cookie. Also on this line are
|
||
a number of other links that will be covered below.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Please bear in mind that from here on
|
||
the descriptions of the web pages are based on what you will see if you are
|
||
running as a fully authenticated user. If you are running in un-authenticated
|
||
mode or as a less privileged user then some elements may not be shown or will
|
||
be disabled.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.1.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Defining Monitors</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>To use ZoneMinder properly you need to
|
||
define at least one Monitor. Essentially, a monitor is associated with a camera
|
||
and will continually check it for motion detection and such like. So, next
|
||
click 'Add New Monitor' to bring up the dialog. You will see a bunch of things
|
||
you have to fill in.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>To help you get started on the video
|
||
configuration the best thing is to us a tool like 'xawtv' to get a picture
|
||
you're happy with, and to check your camera works. Then run 'zmu -d
|
||
<device_no> -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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The options explained in a little more
|
||
detail are as follows,</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Name</span></b><span lang=EN-GB> - First choose a name
|
||
for it, anything you like. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Function</span></b><span lang=EN-GB> - This
|
||
essentially defines what the monitor is doing. This can be 'None' meaning the
|
||
monitor is currently disabled, 'Passive' meaning you can watch the streams
|
||
coming from the camera but no alarms or events will be generated, or 'Active'
|
||
meaning all the images will be analysed as well as the stream being available
|
||
to watch. If you have specified X10 support then X10 is also available as an
|
||
option, which means that the monitor is generally passive but may switch to or
|
||
from active mode on receipt of X10 commands (see below). Generally you'll want
|
||
'Active' but for now leave this at 'None'. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Source Type</span></b><span lang=EN-GB> <20> This
|
||
determines whether the camera is a local one attached to a physical video or
|
||
USB port on your machine or a remote network camera or similar. Choosing one or
|
||
the other affects which set of three options are shown next.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Device Number/Channel</span></b><span lang=EN-GB> <20>
|
||
For a local camera enter the device number that your camera is attached to. If
|
||
it is /dev/video0 enter '0' etc. Some video devices, e.g. BTTV cards support
|
||
multiple cameras so in the Channel box choose the appropriate channel, or leave
|
||
it at zero if you're using a USB camera or one without channels. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Device Format</span></b><span lang=EN-GB> <20> For a
|
||
local camera 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Remote Host/Port/Path</span></b><span lang=EN-GB> <20>
|
||
For remote cameras use these fields to enter the full URL of the camera.
|
||
Basically if your camera is at <span class=MsoHyperlink><span style='color:
|
||
blue'>http://camserver.home.net:8192/cameras/camera1.jpg</span></span> then
|
||
these fields will be camserver.home.net, 8192 and /cameras/camera1.jopg
|
||
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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Orientation</span></b><span lang=EN-GB> <20> 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 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 <20>Rotate Right<68> here then set the height to be 352 and width to be 288.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Capture Width/Height</span></b><span lang=EN-GB> - 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
|
||
352x288 and then perhaps increasing and seeing how performance is affected.
|
||
This size should be adequate in most cases.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Capture Palette</span></b><span lang=EN-GB> - 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 grey scale first, and then 24 bit colour. If neither of these work very
|
||
well then YUV420P probably will.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Timestamp Label Format</span></b><span lang=EN-GB> -
|
||
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 through printf to
|
||
add the monitor name so a format of '%%s - %y/%m/%d %H:%M:%S' would be
|
||
recommended though you can modify it if necessary. If you don<6F>t want a
|
||
timestamp or have a camera that puts one on itself then leave this field blank.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Timestamp Label X/Y</span></b><span lang=EN-GB> - 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. A Y value of the height you supplied earlier minus
|
||
8 will place it on the bottom of the image.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Image Buffer Size</span></b><span lang=EN-GB> - 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 <20>n<EFBFBD> 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 100
|
||
is usually ok.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Warm-up Frames </span></b><span lang=EN-GB>- 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Pre/Post Event Image Buffer</span></b><span
|
||
lang=EN-GB> - 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. Both of these values added together should not exceed the ring buffer
|
||
size. You should also bear in mind the frame rate of the camera when choosing
|
||
this value. 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 well
|
||
capture at 25FPS and you will want to ensure that this setting enables you to
|
||
view a reasonable time frame pre and post event.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Maximum FPS</span></b><span lang=EN-GB> <20> 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 is difficult to
|
||
synchronise two different capture rates precisely. There is a global
|
||
configuration option that allows you to turn this limiting off in the event of
|
||
an alarm.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>FPS Report Interval</span></b><span lang=EN-GB> - 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Reference Image Blend %ge</span></b><span lang=EN-GB>
|
||
- 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 recommended value of 10 here, each
|
||
images 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 later if necessary.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>X10 Activation String</span></b><span lang=EN-GB> -
|
||
This option is only available if you have specified X10 support in the
|
||
configuration. If you have then this contents of this field determine when a
|
||
monitor starts and stops being Active if its function is set to X10. Basically
|
||
what this means is that a monitor with a Function of X10 normally acts as it is
|
||
Passive, i.e. you can watch the video stream but no analysis is done. On
|
||
receipt of the appropriate X10 signal however it effectively changes to Active
|
||
mode and starts to analyse images until an X10 signal (or elapsed time) changes
|
||
it back to Passive again. The format of this string is as follows,</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n</span></u><span
|
||
lang=EN-GB> : 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>!n</span></u><span
|
||
lang=EN-GB> : 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n+</span></u><span
|
||
lang=EN-GB> : 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n+<seconds></span></u><span
|
||
lang=EN-GB> : As per the previous mode except that the monitor will deactivate
|
||
itself after the given number of seconds.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n-</span></u><span
|
||
lang=EN-GB> : 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>n-<seconds></span></u><span
|
||
lang=EN-GB> : As per the previous mode except that the monitor will activate
|
||
itself after the given number of seconds.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><span lang=EN-GB>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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>X10 Input Alarm String</span></b><span lang=EN-GB> -
|
||
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 apply except that for
|
||
activated read alarmed and for deactivated read unalarmed(!). Again leave this
|
||
blank for now.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>X10 Output Alarm String</span></b><span lang=EN-GB> -
|
||
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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Finally, click 'Save' to add your
|
||
monitor.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>On the main console listing you will now
|
||
see your monitor and some of its vital statistics. Each column is also a link
|
||
and you get to other functions of ZoneMinder by choosing the appropriate one.
|
||
Describing them left to right, they are as follows.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The first column is the Id, clicking on
|
||
this gives you the opportunity to edit any of the settings you have just
|
||
defined your monitor to have.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The next column is the Name column,
|
||
clicking on this will give you the watch window where you can view a live feed
|
||
from your camera. This is described more fully below.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Following that are the Function and
|
||
Source columns, which may be represented in various colours. Initially both
|
||
will be showing red. This means that that monitor is not configured for any
|
||
function and as a consequence has no zmc (capture) daemon running on it. If it
|
||
were orange it would mean that a zmc daemon was running but no zma (analysis)
|
||
daemon and green means both are running. In our case it is red because we
|
||
defined the Monitor to have a Function of None so no daemons are required. To
|
||
get the daemons up and running you can either click on the source listed in the
|
||
Source column and edit the monitor properties or click on the Function listed
|
||
and change it to <20>Passive<76> or 'Active', which will ensure that one or more
|
||
appropriate daemons are started automatically.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Having a device status of red or orange
|
||
does not necessarily constitute an error if you have deliberately disabled a
|
||
monitor or have just put it into Passive mode.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you have several cameras (and thus
|
||
monitors) on a device the device status colour reflects all of them for the
|
||
capture daemon. So if just one monitor is active then the daemon is active for
|
||
both even if all the other monitors are switched off.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Once you have changed the function of
|
||
your monitor, the main console window will be updated to reflect this change.
|
||
If your device status does not go green then check your system and web server
|
||
logs to see if it's something obvious.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You can now add further monitors if you
|
||
have cameras set up to support them. Once you have one or more monitors you may
|
||
notice the '<n> Monitors' title becomes a link which allows you to cycle
|
||
through a shot from each of your monitors (unless they are switched off) and
|
||
get a streamed or still image from each in turn. There may also be a link
|
||
titled <20>Montage<67> which allows you view all your enabled cameras simultaneously.
|
||
Be aware however that this can consume large amounts of bandwidth and CPU so
|
||
should not be used continuously unless you have resource to burn. </span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.2.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Defining Zones</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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 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 stippled pattern representing your zone. In the default case this will
|
||
cover the whole image and will be red. Beneath that will be a table containing
|
||
a listing of your zones. Clicking on either the relevant bit of the image or on
|
||
the Id or Name in the table will bring up another window where you can edit the
|
||
particulars for your Zones. As you can see there are quite a few, so now is a
|
||
good time to go through them. The options are as follows.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Name</span></b><span lang=EN-GB> <20> This is just a
|
||
label to identify the zone by. You can change this to be more representative if
|
||
you like, though it isn't used much except for logging and debugging.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Type</span></b><span lang=EN-GB> - This is one of the
|
||
more important concepts in ZoneMinder and there are five to choose from.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Active</span></u><span
|
||
lang=EN-GB> : This is the zone type you'll use most often, and which will be
|
||
set for your default zone. This means that this zone will trigger an alarm on
|
||
any events that occur within it that meet the selection criteria. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Inclusive</span></u><span
|
||
lang=EN-GB> : This zone type can be used for any zones that you want to trigger
|
||
an alarm only if at least one other Active zone has already triggered one. This
|
||
might be for example to cover an area of the image like a plant or tree which
|
||
moves a lot and which would trigger lots of alarms. Perhaps this is behind an
|
||
area you'd like to monitor though, in this case you'd create an active zone
|
||
covering the non-moving parts and an inclusive zone covering the tree perhaps
|
||
with less sensitive detection settings also. If something triggered an alarm in
|
||
the Active zone and also in the Inclusive zone they would both be registered
|
||
and the resulting alarm would be that much bigger than if you had blanked it
|
||
out altogether.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Exclusive</span></u><span
|
||
lang=EN-GB> : The next zone Type is Exclusive. This means that alarms will only
|
||
be triggered in this zone if no alarms have already been triggered in Active
|
||
zones. This is the most specialised of the zone types and you may never use it
|
||
but in its place it is very useful. For instance in the camera covering my
|
||
garden I keep watch for a hedgehog that visits most nights and scoffs the food
|
||
out of my cats bowls. By creating a sensitive Exclusive zone in that area I can
|
||
ensure that a hedgehog alarm will only trigger if there is activity in that
|
||
small area. If something much bigger occurs, like someone walking by it will
|
||
trigger a regular alarm and not one from the Exclusive zone. Thus I can ensure
|
||
I get alarms for big events and also special small events but not the noise in
|
||
between.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Preclusive</span></u><span
|
||
lang=EN-GB> : This zone type is relatively recent. It is called a Preclusive
|
||
zone because if it is triggered it actually precludes an alarm being generated
|
||
for that image frame. So motion or other changes that occur in a Preclusive
|
||
zone will have the effect of ensuring that no alarm occurs at all. The application
|
||
for this zone type is primarily as a shortcut for detecting general large-scale
|
||
lighting or other changes. Generally this may be achieved by limiting the
|
||
maximum number of alarm pixels or other measure in an Active zone. However in
|
||
some cases that zone may cover an area where the area of variable illumination
|
||
occurs in different places as the sun and/or shadows move and it thus may be
|
||
difficult to come up with general values. Additionally, if the sun comes out
|
||
rapidly then although the initial change may be ignored in this way as the
|
||
reference image catches up an alarm may ultimately be triggered as the image
|
||
becomes less different. Using one or more Preclusive zones offers a different
|
||
approach. Preclusive zones are designed to be fairly small, even just a few
|
||
pixels across, with quite low alarm thresholds. They should be situated in
|
||
areas of the image that are less likely to have motion occur such as high on a
|
||
wall or in a corner. Should a general illumination change occur they would be
|
||
triggered at least as early as any Active zones and prevent any other zones
|
||
from generating an alarm. Obviously careful placement is required to ensure
|
||
that they do not cancel any genuine alarms or that they are not so close
|
||
together that any motion just hops from one Preclusive zone to another. As
|
||
always, the best way is to experiment a little and see what works for you.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u><span lang=EN-GB>Inactive </span></u><span
|
||
lang=EN-GB>: This final zone type is the opposite of Active. In this zone type
|
||
no alarms will ever be reported. You can create an Inactive zone to cover any
|
||
areas in which nothing notable will ever happen or where you get constant false
|
||
alarms that don't relate to what you are trying to monitor. An Inactive zone
|
||
can overlay other zone types and will be processed first.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><span lang=EN-GB>I mentioned
|
||
above that Inactive zones may be overlaid on other zones to blank out areas
|
||
however as a general principle you should try and make zones abut each other as
|
||
much as possible and not overlap. This helps avoid repeated duplicate
|
||
processing of the same area. For instance an Inclusive zone overlaying an
|
||
Active zone when all other settings are the same will always trigger when the
|
||
Active zone does which somewhat defeats the object of the exercise. One
|
||
exception to this is Preclusive zones. These may be situated within Active
|
||
areas are they are processed first and if small may actually save processing
|
||
time by preventing full analysis of the image.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Units</span></b><span lang=EN-GB> - This setting which
|
||
details whether certain of the following settings are in Pixels or Percent of
|
||
the frame. In general pixels is more precise whereas percentages are easier to
|
||
use to start with. If you change this setting all appropriate values below are
|
||
redisplayed in the correct context. A good tip would be to initially enter the
|
||
settings in Percent and then change to Pixels and refine any gaps. Repeated
|
||
flipping between the settings will cause rounding errors, as ZoneMinder in
|
||
general is not at home to Mr Floating Point for reasons of performance. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Min/Maximum X/Y</span></b><span lang=EN-GB> -
|
||
Following the units the next four settings define the bounds of the Zone in the
|
||
monitor frame and are self-explanatory with the exception of the fact that the
|
||
minima are at the top left of the frame and the maxima are at the bottom right
|
||
rather than in a Cartesian style.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Alarm Colour </span></b><span lang=EN-GB>- The option
|
||
after that allows you to specify what colour you'd like any alarms this zone
|
||
generates to be highlighted on images, pick anything you like that will show up
|
||
against your normal image background. This option is irrelevant for Preclusive
|
||
and Inactive zones and will be disabled For Inactive zones all subsequent
|
||
options are likewise disabled.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Alarm Threshold</span></b><span lang=EN-GB> - This
|
||
represents the difference in value between a pixel and its predecessor in the
|
||
reference image. For greyscale images this is simple but for colour images the
|
||
colours are averaged first, originally this used an RMS (root mean squared)
|
||
algorithm but calculating square roots mugs performance and does not seem to
|
||
improve detection. Using an average does means that subtle colour changes
|
||
without any brightness change may go undetected but this is not the normal
|
||
circumstance. There is also the option to use a more sophisticated integer
|
||
algorithm to calculate a Y (or brightness) value from the colours themselves.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Min/Maximum Alarmed Area</span></b><span lang=EN-GB> -
|
||
The following two settings define the minimum and maximum number of pixels that
|
||
exceed this threshold that would cause an alarm. If the units are Percent this
|
||
(and following options) refers to the percentage of the frame and not the zone,
|
||
this is so these values can be related between zones. The minimum value must be
|
||
matched or exceeded for an alarm to be generated whereas the maximum must not
|
||
be exceeded or the alarm will be cancelled. This is to allow for sudden changes
|
||
such as lights coming on etc, which you may wish to disregard. In general a
|
||
value of zero for any of these settings causes that value to be ignored, so you
|
||
can safely set a maximum to zero and it will not be used. The use of just a
|
||
number of pixels is however a very brute force method of detection as many
|
||
small events dispersed widely are not distinguished from a compact one.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Filter Width/Height</span></b><span lang=EN-GB> <20> To
|
||
improve detection of valid event ZoneMinder applies several other functions to
|
||
the data to improve its ability to distinguish interesting signals from
|
||
uninteresting noise. The first of these is a filter that removes any pixels
|
||
that do not participate in a contiguous block of pixels above a certain size.
|
||
These options are always pixels and should be fairly small, and an odd number.
|
||
Application of this filter removes any tiny or discontinuous pixels that don't
|
||
form part of a discrete block. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Min/Maximum Filtered Area</span></b><span lang=EN-GB>
|
||
<EFBFBD> These are two additional bounds that specify the limits of pixels that would
|
||
cause an alarm after this filtering process. As the filtering process can only
|
||
remove alarmed pixels it makes no sense for the Minimum and Maximum Filtered
|
||
Area to be larger than the equivalent Alarmed Area and in general they should
|
||
be smaller or the same.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Min/Maximum Blob Area</span></b><span lang=EN-GB> -
|
||
The next step in the analysis phase is the collation of any remaining alarmed
|
||
areas into contiguous blobs. This process parses the image and forms any pixels
|
||
that adjoin other alarmed pixels into one or more larger blobs. These blobs may
|
||
be any shape and can be as large as the zone itself or as small as the filtered
|
||
size. The Minimum and Maximum Blob Size settings allow you to define limits
|
||
within which an alarm will be generated. Of these only the Minimum is likely to
|
||
be very useful.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'><span lang=EN-GB>Min/Maximum Blobs </span></b><span lang=EN-GB>-
|
||
Finally the Minimum and Maximum Blobs settings specify the limits of the actual
|
||
number of blobs detected. If an image change satisfies all these requirements
|
||
it becomes an alarm event.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.3.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Viewing Monitors</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>As this point you should have one or
|
||
more Monitors running with one or more Zones each. Returning to the main
|
||
Console window you will see your monitors listed once more. The columns not
|
||
explored so far are the Monitor name, and various event totals for certain
|
||
periods of time. Clicking on any of the event totals will bring up a variation
|
||
on the same window but click on the Monitor name for now. On doing so up will
|
||
pop another window which should be scaled to contain a heading, an image from
|
||
your monitor, a status and a list of events if any have been generated.
|
||
Depending on whether you are able to view a streamed image or not the image
|
||
frame will either be this stream or a series of stills. You have the option to
|
||
change from one to the other (if available) at the centre of the top heading.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The image should be self-explanatory but
|
||
if it looks like garbage it is possible that the video configuration is wrong
|
||
so look in your system error log and check for or report anything unusual. The
|
||
centre of the window will have a tiny frame that just contains a status; this
|
||
will be 'Idle', 'Alarm' or 'Alert' depending on the function of the Monitor 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
|
||
will just become part of the same event. These indicators are colour coded in
|
||
green, red and amber.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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 configuration 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
|
||
computer. This should be a short sound of only a couple of seconds ideally.
|
||
Note that as the status is refreshed every few seconds it is possible for this
|
||
not to alert you to every event that takes place, so you shouldn't rely on it
|
||
for this purpose if you expect very brief events. Alternatively you can
|
||
decrease the refresh interval for this window in the configuration though
|
||
having too frequently refreshing may impact on performance.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Below the status is a list of recent
|
||
events that have occurred, by default this<span style="mso-spacerun: yes"><EFBFBD>
|
||
</span>is a listing of just the last 10 but clicking on 'All' will give you a
|
||
full list<span style="mso-spacerun: yes"><EFBFBD> </span>and 'Archive' will take you
|
||
to the event archive for this monitor, more on this<span style="mso-spacerun:
|
||
yes"><EFBFBD> </span>later. Clicking on any of the column headings will sort the
|
||
events appropriately.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>From here you can also delete events if
|
||
you wish. The events themselves are listed with the event id, and event name
|
||
(which you can change), the time that the event occurred, the length of the
|
||
event including any preamble and postamble frames, the number of frames
|
||
comprising the event with the number that actually contain an alarm in brackets
|
||
and finally a score. This column lists the average score per alarm frame as
|
||
well as the maximum score that any alarm frame had.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The score is an arbitrary value that
|
||
essentially represents the percentage of pixels in the zone that are in blobs
|
||
divided by the square root of the number of blobs and then divided by the size
|
||
of the zone. This gives a nominal maximum of 100 for a zone and the totals for
|
||
each zone are added together, Active zones scores are added unchanged,
|
||
Inclusive zones are halved first and Exclusive zones are doubled. In reality
|
||
values are likely to be much less than 100 but it does give a simple indication
|
||
of how major the event was.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.4.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Filtering Events</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The other columns on the main console
|
||
window contain various event totals for your monitor over the last hour, day,
|
||
week and month as well as a grand total and a total for events that you may
|
||
have archived for safekeeping. Clicking on one of these totals or on the 'All'
|
||
or 'Archive' links from the monitor window described above will present you with
|
||
a new display. This is the full event window and contains a list of events
|
||
selected according to a filter which will also pop up in its own window. Thus
|
||
if you clicked on a 'day' total the filter will indicate that this is the
|
||
period for which events are being filtered. The event listing window contains a
|
||
similar listing to the recent events in the monitor window. The primary
|
||
differences are that the frames and alarm frames and the score and maximum
|
||
score are now broken out into their own columns, all of which can be sorted by
|
||
clicking on the heading. Also this window will not refresh automatically,
|
||
rather only on request. Other than that, you can choose to view events here or
|
||
delete them as before.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The other window that appeared is a
|
||
filter window. You can use this window to create your own filters or to modify
|
||
existing ones. You can even save your favourite filters to re-use at a future
|
||
date. Filtering itself is fairly simple; you first choose how many expressions
|
||
you'd like your filter to contain. Changing this value will cause the window to
|
||
redraw with a corresponding row for each expression. You then select what you
|
||
want to filter on and how the expressions relate by choosing whether they are
|
||
'and' or 'or' relationships. For filters comprised of many expressions you will
|
||
also get the option to bracket parts of the filter to ensure you can express it
|
||
as desired.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>There are several different elements to
|
||
an event that you can filter on, some of which require further explanation.
|
||
These are as follows, 'Date/Time' which must evaluate to a date and a time
|
||
together, 'Date' and 'Time' which are variants which may only contain the
|
||
relevant subsets of this, 'Weekday' which as expected is a day of the week. All
|
||
of the preceding elements take a very flexible free format of dates and time
|
||
based on the PHP strtotime function
|
||
(http://www.zend.com/manual/function.strtotime.php). This allows values such as
|
||
'last Wednesday' etc to be entered. I recommend acquainting yourself with this
|
||
function to see what the allowed formats are.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The other elements you can filter on are
|
||
all fairly self explanatory except perhaps for 'Archived' which you can use to
|
||
include or exclude Archived events. In general you'll probably do most
|
||
filtering on un-archived events. Once your filter is specified, clicking
|
||
'submit' will filter the events according to your specification. If you have
|
||
created a filter you want to keep, you can name it and save it by clicking
|
||
'Save'.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you do this then the subsequent
|
||
dialog will also allow you specify whether you want this filter automatically
|
||
applied in order to delete events or upload events via ftp to another server
|
||
and mail notifications of events to one or more email accounts. In most cases
|
||
you can specify your preferences for upload formats and email content during
|
||
configuration time (make sure you type '?' to get help on options). Emails and
|
||
messages (essentially small emails intended for mobile phones or pagers) have a
|
||
variety of tokens that can be substituted for various details of the event that
|
||
caused them. This includes links to the event view or the filter as well as the
|
||
option of attaching images or videos to the email itself. See the included
|
||
templates zmconfig_eml.txt and zmconfig_msg.txt for a fuller explanation of the
|
||
availability and meaning of these tokens.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Filtering is a powerful mechanism you
|
||
can use to eliminate events that fit a certain pattern however in many cases
|
||
modifying the zone settings will better address this. Where it really comes
|
||
into its own is generally in applying time filters, so for instance events that
|
||
happen during weekdays or at certain times of the day are highlighted, uploaded
|
||
or deleted.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.5.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Viewing Events</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>From the monitor or filtered events
|
||
listing you can now click on an event to view it in more detail. If you have
|
||
streaming capability you will see a series of images that make up the event.
|
||
You will also see a link to allow you to view the still images themselves. If
|
||
you don't have streaming then you will be taken directly to this page. The
|
||
images themselves are thumbnail size and depending on the configuration and
|
||
bandwidth you have chosen will either be the full images scaled in your browser
|
||
of actual scaled images. If it is the latter, if you have low bandwidth for
|
||
example, it may take a few seconds to generate the images. If thumbnail images
|
||
are required to be generated, they will be kept and not re-generated in future.
|
||
Once the images appear you can mouse over them to get the image sequence number
|
||
and the image score.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You will notice for the first time that
|
||
alarm images now contain an overlay outlining the blobs that represent the
|
||
alarmed area. This outline is in the colour defined for that zone and lets you
|
||
see what it was that caused the alarm. Clicking on one of the thumbnails will
|
||
take you to a full size window where you can see the image in all its detail
|
||
and scroll through the various images that make up the event. If you have the
|
||
ZM_RECORD_EVENT_STATS option on, you will be able to click the 'Stats' link
|
||
here and get some analysis of the cause of the event. Should you determine that
|
||
you don't wish to keep the event, clicking on Delete will erase it from the
|
||
database and file system. Returning to the event window, other options here are
|
||
renaming the event to something more meaningful, refreshing the window to
|
||
replay the event stream, deleting the event, switching between streamed and
|
||
still versions of the event (if supported) and generating an MPEG video of the
|
||
event (if supported).</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>These last two options require further
|
||
explanation. Archiving an event means that it is kept to one side and not
|
||
displayed in the normal event listings unless you specifically ask to view the
|
||
archived events. This is useful for keeping events that you think may be
|
||
important or just wish to protect. Once an event is archived it can be deleted
|
||
or unarchived but you cannot accidentally delete it when viewing normal
|
||
unarchived events.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The final option of generating an MPEG
|
||
video is still somewhat experimental and it's usefulness may vary. It can use
|
||
either the Berkeley MPEG encoder or the faster and new ffmpeg encoder. Either
|
||
of these will generate a short video, which will be downloaded to your browsing
|
||
machine to view. Due to the relatively slow frame rate that ZoneMinder will
|
||
capture at and the high minimum frame rate that the Berkeley encoder uses
|
||
videos created by this method will be very quick. However when using the ffmpeg
|
||
encoder, ZoneMinder will attempt to match the duration of the video with the
|
||
duration of the event. This has the useful effect of making the video watchable
|
||
and not too quick while having the unfortunate side effect of increasing file
|
||
size and generation time. Ffmpeg in particular has a particularly rich set of
|
||
options and you can specify during configuration which additional options you
|
||
may wish to include to suit your preferences.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Building an MPEG video, especially for a
|
||
large event, can take some time and should not be undertaken lightly as the
|
||
effect on your host box of many CPU intensive encoders will not be good.
|
||
However once a video has been created for an event it will be kept so
|
||
subsequent viewing will not incur the generation overhead. I will be the first
|
||
to admit that this area of the package is not particularly well implemented and
|
||
needs work, and probably a better encoder. Videos can also be included in
|
||
notification emails however care should be taken when using this option as for
|
||
many frequent events the penalty in CPU and disk space can quickly mount up.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>5.6.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Options and Users</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>The final area covered by the tutorial
|
||
is the options and user section. If you are running in authenticated mode and
|
||
don<EFBFBD>t have system privileges then you will not see this section at all and if
|
||
you are running in un-authenticated mode then no user section will be
|
||
displayed.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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 <20>?<3F> 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 so you should be aware
|
||
of the state of this before modifying options and expecting them to make any
|
||
difference.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>If you have changed the value of an
|
||
option you should then <20>save<76> 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, however once you have made all of your changes
|
||
you should restart ZoneMinder as soon as possible. The reason for this is 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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>As mentioned above, you may also see a
|
||
<EFBFBD>users<EFBFBD> tab. 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 the admin user unless you have created another fully
|
||
privileged user to take over the same role. Each user is defined with a name
|
||
and password (which is hidden) as well as an enabled setting which you can use
|
||
to temporarily enable or disable users, for example a guest user for limited
|
||
time access.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>There are also four values that define
|
||
the user permissions, these are <20>stream<61>, <20>events<74>, <20>monitors<72> and <20>system<65>
|
||
Each can have values of <20>none<6E>, <20>view<65> or <20>edit<69> apart from <20>stream<61> which has
|
||
no <20>edit<69> setting. These values cover access to the following areas; <20>stream<61>
|
||
defines whether a user is allowed to view the <20>live<76> 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 <20>none<6E>. The <20>events<74> setting determines whether a
|
||
user can view and modify or delete any retained historical events. The
|
||
<EFBFBD>monitors<EFBFBD> setting specifies whether a user can see the current monitor
|
||
settings and change them. Finally the <20>system<65> 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-<2D>system<65>
|
||
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 <20>monitors<72> 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 <20>system<65> privileges then the monitors ids setting
|
||
is ignored and has no effect.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>That<EFBFBD>s pretty much is it for the tour.
|
||
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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Have fun, please report any bugs or
|
||
features you'd like to see and hopefully ZoneMinder can be your camera
|
||
monitoring friend!</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Philip Coombes
|
||
(philip.coombes@zoneminder.com) - July 2003</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>6.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Troubleshooting<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Life eh? Nothing ever works first time
|
||
does it? In case you are having problems here are some things to try. If these
|
||
don't work 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 your system error log
|
||
(normally /var/log/messages on RedHat) and your 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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Some things to check.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Device configuration. If you can't get
|
||
your cameras to work in ZoneMinder, firstly make sure that you have the correct
|
||
settings. Use xawtv or something like that to check for settings that work and
|
||
then run zmu -d <device_no> -q -v to get the settings. If you can't get
|
||
them to work with that then the likelihood is they won't work with ZoneMinder.
|
||
Also 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 and recompile and
|
||
reinstall.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Start simple. Begin with a single
|
||
monitor and single zone. You can run the zmc capture daemon from the command
|
||
line as 'zmc --device 0' (or whatever your video device is). If it returns
|
||
immediately there's a problem so check the logs, if it stays up then your video
|
||
configuration is probably ok. To get more information out of it use debug as
|
||
specified below. Also check that the shared memory segment has been created by
|
||
doing 'ipcs -m'. Finally, beware of doing tests as root and then trying to run
|
||
as another user as some files may not be accessible. If you're checking things
|
||
as root make sure that you clean up afterwards!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Web server. Ensure that your web
|
||
server can serve PHP files. It's also possible that your php.ini file may have
|
||
some settings which break ZoneMinder, I'm not a PHP guru but setting safe mode
|
||
may prevent your PHP files from running certain programs. You may have to set
|
||
configuration to allow 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>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 amount of shared memory
|
||
greater than your system can handle. The size it requests is base on the
|
||
following formula, ring buffer size x image width x image height x 3 (for 24
|
||
bits images) + a bit of overhead. So if for instance you were using 24bit
|
||
640x480 then this would come to about 92Mb if you are using the default buffer
|
||
size of 100. If this is too large then you can either reduce the image or
|
||
buffer sizes or 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</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>You should be able to use a similar
|
||
process 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 commands
|
||
to check and remove it if necessary.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>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 version 0.9.8
|
||
ZoneMinder has used short PHP open tags to output information, so instead of
|
||
something like this '<?php echo $value ?>', it will be something like
|
||
this '<?= $value ?>' which is easier and quicker to write as well as
|
||
being neater. More information about this directive can be seen at the
|
||
following location, <span class=MsoHyperlink><span style='color:blue'>http://www.php.<a
|
||
name="_Hlt42867874">n</a>et/manual/en/configuration.directives.php#ini.short-open-tag</span></span>.
|
||
However although by default most PHP installations support this form, some will
|
||
need to have it switched on explicitly. To do this you will first need to find
|
||
your php.ini file (do a 'locate php.ini' or 'find / -name php.ini'. Be aware
|
||
however that sometimes you might find more than one, so ensure you identify the
|
||
one that is actually being used. You will then need to find the line that
|
||
starts 'short_open_tag = ' and change the Off value to On. This wil correct the
|
||
problem. However in some cases you may have explicitly switched it off, so that
|
||
XML compliant documents can be more easily served, or you may even not have
|
||
permission to edit the file. In this case you can go into the web directory of
|
||
ZoneMinder and run 'sh retag.sh' which will replace all the short open tags in
|
||
the files themselves with the longer variant. You will obviously have to
|
||
remember to do this for each subsequent version of ZoneMinder that you install
|
||
as well.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Use debug. ZoneMinder has various
|
||
debug in it that by default will go into your system log (via syslog). These
|
||
will be of the form of</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;mso-list:skip'><span
|
||
lang=EN-GB>"Sep 14 14:50:11 localhost zma-0[1975]: INF [Front: 221000 -
|
||
Processing at 4.26 fps ]"</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;mso-list:skip'><span
|
||
lang=EN-GB>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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Paths. I admit it, the various paths
|
||
in ZoneMinder are a 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l9 level1 lfo2;tab-stops:36.0pt'><![if !supportLists]><i style='mso-bidi-font-style:
|
||
normal'><span lang=EN-GB style='font-family:"Courier New"'>o<span
|
||
style='font:7.0pt "Times New Roman"'>
|
||
</span></span></i><![endif]><span lang=EN-GB>Missing perl modules. There are
|
||
various perl modules used by the various scripts. If you get errors about
|
||
missing ones, the easiest way to install them is to type the following (you will
|
||
probably need to be root),<i style='mso-bidi-font-style:normal'><o:p></o:p></i></span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><i style='mso-bidi-font-style:
|
||
normal'><span lang=EN-GB>perl -MCPAN -eshell<o:p></o:p></span></i></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><span lang=EN-GB>this will
|
||
then (eventually, after some configuration if it<69>s your first time) present you
|
||
with a prompt. From there you can type install module, e.g. Archive::Zip and
|
||
the rest should be more or less automatic as it will chase any dependencies for
|
||
you. There may be some initial configuration questions it might ask you on
|
||
startup if you've never run it before and to speed things up I would not
|
||
install a new Bundle at this point (it can end up building you a whole new perl
|
||
if you<6F>re not careful) if it asks you but everything else should be quite
|
||
straightforward.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l2 level1 lfo3;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Unsupported palettes. ZoneMinder
|
||
currently is designed to use the simple palettes of greyscale and 24 bit as
|
||
well as now the YUV420P palette. This should cover most cameras but it's
|
||
possible that there are ones out there that might want to use more esoteric
|
||
formats that ZoneMinder doesn<73>t support. This will often show up as the capture
|
||
daemon being unable to set picture attributes. If this occurs try using
|
||
different palettes starting with greyscale and if you can't get anything to
|
||
work let me know and I'll try and add it.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l2 level1 lfo3;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>USB bus problems. If you have multiple
|
||
USB cameras on one bus then it can appear as if ZoneMinder is causing your
|
||
cameras to fail. This is because the bandwidth available to cameras is limited
|
||
by the fairly low USB speed. In order to use more than one USB camera with
|
||
ZoneMinder (or any application) you will need to inform the driver that there
|
||
are other cameras requiring bandwidth. This is usually done with a simple
|
||
module option. Examples are usb_alt=<n> for the OV511 driver and
|
||
cams=<n> for CPIA etc. Check your driver documentation for more details.
|
||
Be aware however that sharing cameras in this way on one bus will also limit
|
||
the capture rate due to the reduced bandwidth.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l2 level1 lfo3;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Incorrect libjpeg.a detection. It
|
||
seems to be the case that in some cases the library file libjpeg.a is reported
|
||
as missing even when apparently present. This appears to actually be down to
|
||
the g++ compiler not being installed on the host system. Since ZoneMinder
|
||
contains both C++ and C files you need to be able to compile both of these file
|
||
types and so usually need to ensure you have gcc and g++ installed (though they
|
||
are often the same binary).</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l2 level1 lfo3;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Httpd and zms memory leaks. It has
|
||
been reported by some users with RedHat 9 that the zms process fails to
|
||
terminate correctly when the controlled window is killed and also that it, and
|
||
it<EFBFBD>s associated httpd process, continue to grow in memory size until they kill
|
||
the system. This appears to be a bug in either the compiler or apache on RH9.
|
||
On other systems it may appear that zms is leaking and growing. However what
|
||
grows is the total and shared memory size while the non-shared memory size
|
||
stays constant. It's a little odd but I think what it happening is that as zms
|
||
picks images out of the shared memory ring buffer to display, as each slot is
|
||
read the size of that bit of memory is added to the shared memory total for the
|
||
process. As streamed images are not read consecutively it's a semi-random
|
||
process so initially most of the buffer slots are new and the shared memory
|
||
size grows then as time goes on the remaining unaccessed slots reduce until
|
||
once all have been read the shared memory use caps out at the same size as the
|
||
actual segment. This is what I would have expected it to be in the first place,
|
||
but it seems to do it incrementally. Then once this total is hit it grows no
|
||
further. As it's shared memory anyway and already in use this apparent leak is
|
||
not consuming any more memory than when it started.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l2 level1 lfo3;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>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.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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
|
||
HKEY_CURRENT_USER\AppEvents\Schemes\Apps\Explorer\Navigating\.current or
|
||
download the registry script to do it for you from
|
||
http://www.zoneminder.com/downloads/noIEClick.reg</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Change Log <o:p></o:p></span></u></h1>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.1.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.14</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Major new feature and important
|
||
bug-fixes.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Web configuration. Following many
|
||
requests and to make ZoneMinder easier to administer the configuration system
|
||
has been changed slightly. You should now still run zmconfig.pl to specify an
|
||
initial configuration but you now only need to answer the first few questions
|
||
to give a core set of options including the database options. The remainder of
|
||
configuration options can then be ignored to start with and all but the core
|
||
options will be written to the database. You can then view and modify these
|
||
options from the web interface and apply then without recompilation, which is
|
||
now only necessary if you change the core configuration.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Following a number of requests the
|
||
.sock file directory is now configurable in zmconfig.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Y channel bug. When using colour
|
||
cameras a motion detection problem was present if fast RGB images deltas
|
||
(ZM_FAST_RGB_DIFFS) was off. This was an overflow error in the calculation of
|
||
the Y channel and caused excessive image differences to be calculated. This has
|
||
now been fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>The use of the Term::Readkey perl
|
||
module in zmaudit.pl has been removed. This module had been removed from
|
||
zmconfig.pl previously but had lingered in this script.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>A bug was found in zmx10.pl causing a
|
||
crash if time delayed X10 events were used. This has now been fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Removed use of <20>zmu<6D> 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 complicated matter slightly
|
||
so these scripts now access the shared memory directly.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Shared memory permissions. Following
|
||
introduction of a user permissions system the previous 777 mode for shared
|
||
memory was deemed insecure. Consequently from now on shared memory is only
|
||
accessible from the owner. This means that zmu will only work when run as root
|
||
or the web user unless you set it setuid where it should still be secure as it
|
||
will require authentication.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>All SQL buffers in the C++ code have
|
||
been enlarged. There was previously an issue with a buffer overflow on certain
|
||
occasions.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.2.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.13</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Beta version of several features and
|
||
fixes, never generally released.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Following a number of requests the
|
||
.sock file directory is now configurable in zmconfig.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed some of the core video calls
|
||
to be V4L2 compatible. This primarily involved opening the video devices and
|
||
memory maps as read/write and not just readonly.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Shared memory has now been
|
||
rationalised to prevent some common problems. Remember to shutdown the whole ZM
|
||
package before installing, from this version on it will remove all old shared
|
||
memory segments.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed not numeric comparison in
|
||
zmwatch which was causing, or appeared to be causing, some errors.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed zone image map bug for
|
||
percentage zones. When you had defined a zone in percentage terms, the imagemap
|
||
used to select it for editing was broken. This is now fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>New contrast/brightness etc
|
||
adjustments feature. This accessible from the Settings link on the monitor
|
||
window. It's fairly basic at present but should work for most types of cameras.
|
||
If you have any device or driver specific auto-brightness, auto-contrast etc
|
||
enabled the changes you make may appear to work but may be overridden by the
|
||
auto feature immediately so check for that if your changes do not appear to be
|
||
having an effect. Also if you have a number of cameras being multiplexed onto
|
||
one device then any changes here will probably affect all your cameras.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Some redundant window scrollbars
|
||
removed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added user and access control. If
|
||
enabled in config (ZM_OPT_USE_AUTH) then you will need to define and login as
|
||
ZM users. There will be one users already defined, with username 'admin' and
|
||
password 'admin'. This user is defined will full permissions and clicking on
|
||
the 'Options' link from the main console window will allow you to modify and
|
||
create users with various permission sets which hopefully will satisfy most
|
||
requirements. These users (except any defined with 'system' edit capability)
|
||
can be restricted to certain cameras by adding the monitor ids as a
|
||
comma-separated list (no spaces) to the appropriate field. Users limited to
|
||
specific monitors may not create or delete monitors even if defined with
|
||
monitor edit permissions.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Some windows now (optionally) use a
|
||
JavaScript timeout to refresh themselves rather than a refresh header. Since
|
||
refresh headers were interrupted if a link of the page was linked there were
|
||
previously various forced refreshes from child windows to restart the refresh
|
||
process. By using JS refresh timers which are not interrupted these extraneous
|
||
refreshes have been mostly eliminated.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.3.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.12</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Mostly bug-fixes with a couple of minor features.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Double first images. Fixed a problem
|
||
where the first image of an event was being recorded twice. I don<6F>t think this
|
||
was at the cost of any of the other images but one copy was an extra.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Made zmdc connect more intelligent. On
|
||
the suggestion of a couple of people I have made the zmdc.pl server spawning
|
||
and waiting a bit more intelligent. Rather than waiting a fixed (short) amount
|
||
of time, it now polls every second for a while, stopping if the connection is
|
||
made. Thanks to Todd McAnally for the initial suggestion.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added image view to events lists.
|
||
Again a partial implementation of a suggested feature. If you click on the
|
||
score column you will now get a snapshot of the event frame with the highest
|
||
score. This is to enable you to quickly see what the event was about without
|
||
having to watch the stream or view all the static images.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Make delta times variable precision. A
|
||
couple of problems had been reported where long events got negative durations.
|
||
This was due to an overflow in a time difference routine. This had been
|
||
operating on fixed precision allowing high precision 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed round detection problem.
|
||
Although the existence or otherwise of the <20>round<6E> 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. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed monitor rename bug. Renaming a
|
||
monitor did not correctly modify the events directory to reflect this. This has
|
||
now been fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>OPT_MPEG bug. A bug was reported (by
|
||
Fernando Diaz) where the results of the ZM_OPT_MPEG configuration variable was
|
||
not correctly imported into the scripts. This now happens as intended.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed zmvideo.pl event length bug. The
|
||
zmvideo.pl script which is used to generate video MPEG files tries to calculate
|
||
the correct frame rate based on the length of the event and the number of
|
||
frames it contains. Previously it did not take account of the pre and post
|
||
event frames and so passed a much shorter value to the mpeg encoder than it
|
||
should. This will only have affected short events encoded with ffmpeg but will
|
||
have resulted in much faster frame rates than necessary. This has now been
|
||
corrected to take the whole event length into account.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed remote camera memory leak. A
|
||
memory leak was reported when capturing with remote cameras, this is now fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Orientation. Added option to rotate or
|
||
invert captured images for cameras mounted at unusual angles.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed filter bug. A bug in the
|
||
zmfilter.pl script was detected and reported by Ernst Lehmann. This bug
|
||
basically meant that events were not checked as often as they should have been
|
||
and many may have been left out for filters that had no time component. The
|
||
script has now been updated to reflect Ernst<73>s suggested changes.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Stylesheet change. Previously the
|
||
stylesheet didn<64>t really work very well on Mozilla, Netscape and browsers other
|
||
than IE. This turned out to be because I was using HTML style comments in there
|
||
instead of C style ones. This has now been corrected so you should see the
|
||
correct styles. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zmconfig.pl ReadKey. Thanks to a
|
||
ridiculously sensible suggestion from Carlton Thomas this module has been
|
||
removed from zmconfig.pl. Originally Term::ReadKey was in there for funky
|
||
single character unbuffered input but that has long since disappeared so just
|
||
regular perl input methods are used now. This removes one of the most
|
||
irritating features about ZoneMinder installs.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Delete monitor confirm. Due to some
|
||
unfortunate accidents by users, attempts to delete monitors will now require
|
||
confirmation.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l4 level1 lfo4;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Detect linmysqlclient.a. Added better
|
||
detection script into <20>configure<72> top spot when libmysqlclient.a is missing.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.4.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.11</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Various new features and fixes.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added stats view <20> If you have the
|
||
RECORD_EVENT_STATS directive set and are viewing a still image from an event
|
||
you can now view the statistics recorded for that frame. This tells you why
|
||
that frame triggered or participated in an alarm. This can be useful in tuning
|
||
the various motion detection parameters and seeing why events occurred.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Tabulated events <20> The main events
|
||
view is now tabulated to look a bit nicer.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>New video palette support <20> As well as
|
||
the existing greyscale and 24 bit RGB palettes, you can now choose YUV420P and
|
||
RGB565. Rewrote the palette/colours area a bit to enable support for other
|
||
palettes in the future if requested. Bear in mind though that YUV palettes are
|
||
converted into RGB internally so if you have the choice RGB24 may be faster as
|
||
it's the 'native' format used within. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added preclusive zones <20> Added a new
|
||
zone type, the preclusive zone. For full details see the relevant section above
|
||
but in brief this is a zone type that if alarmed will actually prevent an
|
||
alarm. This completes the pantheon of zone types I think.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed Mozilla JavaScript <20> Various
|
||
JavaScript functionality did not function on Mozilla, Netscape and other
|
||
browsers. This is now (hopefully) fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Allow image and mpegs to be attached
|
||
to emails <20> Added new tokens (%EI1%, %EIM% and %EV%) to the filter emails. This
|
||
allows the first alarm image, most highly scored alarm image and an alarm MPEG
|
||
to be attached to alarm notification emails. Use %EV% especially with care!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed possible motion detection bug <20>
|
||
I found a few double declared local variables left over from the rewrite. This
|
||
may have affected the motion detection algorithm. Fixed now anyway.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Modified scoring <20> Alarm scoring has
|
||
been modified to give more granularity for smaller events. This will have the
|
||
effect of raising the scores for small events while large ones will still be
|
||
about the same.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed /cgi-bin path problem <20>
|
||
Previously you could specify the real path to you cgi-bin directory if you have
|
||
one but not the web path. You can now do both.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Improved video handling in browser <20>
|
||
The MPEG/video area of the web GUI had been a bit neglected and looked somewhat
|
||
ugly. This has now been improved to a degree and looks a bit nicer.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added ffmpeg support <20> Historically
|
||
ZoneMinder has only supported the Berkeley mpeg encoder which was slow and
|
||
rather limited. ZoneMinder now supports the ffmpeg encoder as well which is
|
||
much much faster and makes generation of MPEG videos at realistic frame rates
|
||
more of a reality. As ffmpeg has so many options and everyone will probably
|
||
want a different emphasis you can now also specify additional ffmpeg options
|
||
via zmconfig.pl.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Colourise greyscale image files <20> In
|
||
past versions, captured greyscale images were stored as JPEG files with a
|
||
corresponding greyscale colourspace. This saved a small amount of space but
|
||
meant that mpeg_encode had to do a conversion to encode them, and ffmpeg just
|
||
fell in a heap. Now you can optionally opt to have greyscale images saved as
|
||
full 24 bit colourspace images (they still look the same) at the price of a
|
||
small penalty in CPU and disk but allowing you to easily and quickly create
|
||
MPEG files. This option is one by default but can be switched off if you do not
|
||
require any MPEG encoding.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fast RGB diffs <20> Previously ZoneMinder
|
||
used quite a loose method for calculating the differences between two colour
|
||
images. This was basically averaging the differences between each of the RGB
|
||
components to get an overall difference. This is still the default but by
|
||
setting ZM_FAST_RGB_DIFFS to 'no' you can now make it calculate the Y (or
|
||
brightness value) of the pixels and use the difference between those instead.
|
||
This will be more accurate and responsive to changes but is may be slower
|
||
especially on old machines. There is a slight double whammy here if you have a
|
||
YUV palette for capture and set this option off as the image will be converted
|
||
to RGB and then partially converted back to get the Y value. This is currently
|
||
very inefficient and needs to be optimised.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed STRICT_VIDEO_CONFIG <20> Previously
|
||
this actually behaved the opposite of what it was supposed to, ie. if you
|
||
wanted it strict it wasn't and vice versa. Thanks to Dan Merillat for pointing
|
||
this one out.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l11 level1 lfo5;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Web colour change <20> 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!</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.5.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.10</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Many bug-fixes and major feature
|
||
enhancements.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Configure <20>round<6E> bug - Fixed a
|
||
problem with the configure script that didn't<span style="mso-spacerun: yes"><EFBFBD>
|
||
</span>detect if the 'round' function was already declared before try to do it
|
||
itself.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Low event id bug - Fixed bug where
|
||
events with an id of < 1000 were being cleaned up by zmaudit.pl by mistake.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Source file restructuring - The source
|
||
files have been broken up and renamed extensively to support the first stage of
|
||
the code being straightened out. Likewise the class structure has been
|
||
rationalised somewhat. The php file names have also changed in some cases so it
|
||
might be best to delete all your php and css files from the zone minder install
|
||
directory first as the old ones won't be overwritten and will be left behind.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Streamed cycle view -<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>The monitor cycle view (the one where each
|
||
monitor is displayed sequentially) now supports streams as well as stills.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>New <20>montage<67> 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.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Network camera support - A major
|
||
change in this version is support for remote or network cameras. This is
|
||
currently implemented as series of http grabs of stills rather than being able
|
||
to break up motion jpeg streams. However frame rates of from 2-10 should be
|
||
achievable depending on your network proximity to the cameras.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Option BGR->RGB swap - Added the
|
||
option to switch on or off the inversion of RGB to BGR for local cameras. It is
|
||
on by default to maintain compatibility with previous releases.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>zmu suspend alarm option - Added new
|
||
-n option to zmu to effectively suspend alarm detection for a monitor. This is
|
||
intended for short term use and to support PTZ cameras where alarm detection is
|
||
desired to be suspended while the camera changes orientation or zoom level.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>FPS limiting - Added a new option to
|
||
monitors to add a maximum capture rate. This allows you to limit the amount of
|
||
hits a network camera gets or to reduce the system load with many cameras. It
|
||
also works with multi-port cards and limiting the capture rate on one camera
|
||
allows the spare FPS to be allocated to other devices. For instance with two
|
||
cameras and no throttle, I get about 4FPS each. Throttling one to 2FPS allows
|
||
the other to operate at 6FPS so you can allocate your capture resources
|
||
accordingly. This limiting can be disabled while alarms are occurring as a
|
||
global option in zmconfig.pl.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Alarm reference update - Added option
|
||
to not blend alarmed images into the reference image. See the help in
|
||
zmconfig.pl for caveats.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Disappearing monitors - Fixed the
|
||
disappearing monitor problem in the console view where monitors with no events
|
||
were randomly not being shown.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Clean and tidy - Cleaned up a load of
|
||
compiler warnings and miscellanea to ensure a cleaner happier build.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Streamed image headers - Made all
|
||
headers in streamed images have full CRLF termination which will hopefully now
|
||
prevent the problems with broken streams that had existed mostly with Mozilla (and
|
||
hopefully won't break anything else).</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Expire streams - Added expiry headers
|
||
to streamed images so they will always display fully.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Event navigation - Added next, prev,
|
||
delete & next, delete & prev navigation to events to allow you to
|
||
quickly review events in sequence as had been requested by a number of people.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>USR blocking <20> The debug USR signals
|
||
were not being blocked properly leading to nasty effects in zmc mostly.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>zmfilter execution <20> Previously
|
||
zmfilter execution was not synchronised with the monitor state or the analysis
|
||
daemon leading to it sometimes being run unnecessarily. From now on the
|
||
zmfilter process will only run when a monitor is active and so actually
|
||
potentially generating alarms.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>zmdc short statuses <20> Removed the
|
||
logging of the short status values that zmdc.pl returns to it<69>s clients which
|
||
had been clogging up the log file.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l6 level1 lfo6;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>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<6F>t think we need to talk about them here do we.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.6.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.9</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Mainly bug-fixes and minor feature
|
||
enhancements.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added zmu -q/--query option - There is
|
||
now a new query option for zmu. When combined with -d it gives the config of
|
||
the device and when used with -m it dumps the current settings for the monitor
|
||
and zones. Mostly useful for bug reporting. The previous version of zmu used
|
||
with just -d gave this information for a video device by default. This now
|
||
requires the -q option also to bring into line with it's -m equivalent.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added creation of events directory -
|
||
Previously the 'events' directory was not created on install, this has been
|
||
fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Can now retag PHP files if necessary -
|
||
Version 0.9.8 was the first version to use short_open_tags in the PHP files.
|
||
This caused grief to some people so this script will put them back to the long
|
||
verion.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Frame and event lengths fractional - A
|
||
new field has been added to the Frames table. This is 'Delta' and is a
|
||
fractional number of seconds relative to the event start time. This is intended
|
||
to support the real-time playback of events rather than just 'as fast as
|
||
possible' or with a configured delay as at present. The event length is now
|
||
also fractional.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Corrected extraneous Width to be
|
||
Height - The last version of zmu included a Width comment which should have
|
||
been height.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed colour depth to bits - Having
|
||
colour depths expressed in bytes has caused no end of problems. This is now
|
||
changed to be bits and can be changed via a dropdown to limit what can be
|
||
entered. Don't forget to run the zmalter script to update your DB.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Renamed terminate to zm_terminate -
|
||
The use of 'terminate' in zmc.cpp caused a conflict on some systems so renamed
|
||
it to something more specific.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zone deletion problem - A problem was
|
||
found such that when deleting zones the appropriate daemons were not being
|
||
asked to restart daemons correctly.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Console changes - The current version
|
||
number is now displayed in the console. A refresh button has also been added
|
||
along with a minor reorg.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added delete button enable to checkAll
|
||
- Using the 'Check All' button in the main monitor window previously did not
|
||
enable the delete button. This is now fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l5 level1 lfo7;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Reload on click - In previous versions
|
||
the console window would reload if a monitor window for example was clicked.
|
||
Thsi 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.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.7.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.8</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Several new features and bug-fixes</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Upgrade note - If you have installed
|
||
0.9.7 and wish to save your configuration then copy your existing zmconfig.txt
|
||
file over to your 0.9.8 directory and before running zmconfig.pl.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added multiple options to zmu - You
|
||
can now give multiple options to zmu and get all the responses at once. However
|
||
this is currently in a deterministic order and not related to the order you
|
||
give them.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added -v/--verbose option to zmu - Zmu
|
||
has been made more human friendly though it still remains primarily for daemon
|
||
use. Giving the -v or --verbose option prints out a bit more as a response to
|
||
each command.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Add -d/--device to zmu - This option
|
||
is designed to allow you to get your video device working with another
|
||
application such as xawtv and then use zmu -d to print out the settings it<69>s
|
||
using</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>(especially with the -v option). These
|
||
options can then be used as a starting point for your ZoneMinder configuration.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added FPS in status field - The status
|
||
field in the web monitor views now contains an FPS setting as well as the
|
||
status.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zmconfig changes - zmconfig handles
|
||
missing options better and rewrites config file even in non-interactive mode.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed config problems in zmcfg.h -
|
||
Some config was not being set up correctly in zmcfg.h.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zmwatch now works on image delay and
|
||
not fps - Previously the zmwatch daemon detected capture daemon failure by
|
||
trying to use the FPS setting. This was imprecise and prone to false readings.
|
||
It now uses the time delay since the last captured image.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added zmpkg.pl and zm scripts - There
|
||
are now two new scripts. zmpkg.pl is in charge of starting and stopping
|
||
ZoneMinder as a whole package and zm is designed to be (optionally) installed
|
||
into your init.d directory to use ZoneMinder as a service.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed bug in Scan mode - The monitor
|
||
cycle or scan mode had stopped working properly due to images not being
|
||
generated. This is now fixed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Revamped the console window slightly -
|
||
The console window has now been reformatted slightly to give more and better
|
||
information including server load.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added email and messaging to filters -
|
||
Filters now allow you to send emails or messages (basically just short emails
|
||
intended for mobile devices) on alarms. The format and possible content for
|
||
these emails is in zmconfig_eml.txt and zmconfig_msg.txt.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Made zmdc more aggresive in killing
|
||
old processes - The zmdc.pl daeamon will now kill any ZoneMinder processes it
|
||
finds on startup or shutdown to prevent orphans from being left around.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Configuration changes - Previously
|
||
there were a lot of files generated by configure. Now only zmconfig.pl is
|
||
generated this way and all the other configuration files are created by
|
||
zmconfig.pl (from .z files) to centralise configuration more.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed cambolzola opt bug - There was a
|
||
bug in the Cambozola options, I can't remember what it was but it's fixed!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Retaint arguments in zmdc.pl - In some
|
||
installations zmdc was complaining about tainted arguments from the socket.
|
||
These are now detainted prior to sending and after receiving.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Forced alarms - You can now force
|
||
alarms when looking at the monitor window should anything catch your attention.
|
||
You have to remember to switch them off as well though.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Looser video configuration - Some
|
||
video configuration errors can now be ignored via the STRICT_VIDEO_CONFIG
|
||
option.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l12 level1 lfo8;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>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.</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.8.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.9.7</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>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. </span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added zmconfig.pl script to help with
|
||
configuration.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Revamped to work better with configure
|
||
scripts</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Monitors now have more configuration
|
||
options, including some that were statically defined before such as location
|
||
and format of the image timestamps.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Removed Alarms table from schema as
|
||
not required, never was actually...</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added a number of new scripts, see the
|
||
scripts directory</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added Fast delete to PHP files. This
|
||
allows the web interface to only delete the event entries themselves for speed
|
||
and then have the zmaudit script periodically tidy up the rest.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added event filter to enable bulk
|
||
viewing, upload or deletion of events according to various attributes. Filter
|
||
can be saved and edited.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added last event id to shared memory
|
||
for auto-filtering etc.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed zmu -i option to write to
|
||
monitor named image file.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Made shared memory management somewhat
|
||
more sensible.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Now stores DB times as localtime
|
||
rather than UTC avoiding daylight saving related bugs.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed bug with inactive zones and
|
||
added more debug.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed main functions to return int.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added help and usage to zmu.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed browser acceptance problem, more
|
||
easily defaults to HTML.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Split out the PHP files into a bunch
|
||
with specific functions rather than one monolithic one.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed NetPBM paths and changed _SERVER
|
||
to HTTP_SERVER_VARS.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added HUP signal on zone deletion.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added NETPBM_DIR and conditional
|
||
netpbm stuff.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Removed hard coded window sizes, all
|
||
popup window dimensions can be specified in zmconfig.php</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Changed form methods to 'get' from
|
||
'post' to avoid resubmit warnings all the time.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Added conditional sound to alarm on
|
||
web interface.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Fixed syntax error when adding default
|
||
monitor.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Some of the web views have changed
|
||
slightly to accommodate the separate events view.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l7 level1 lfo9;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>And much much more, probably...</span></p>
|
||
|
||
<h2><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>7.9.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Release 0.0.1</span></h2>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Initial release, therefore nothing new.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>8.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>To Do<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Seeing as ZoneMinder is so young and has
|
||
kind of evolved rather than being planned there are a bunch of improvements and
|
||
enhancements still to do, here is just a sample.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Perhaps split out devices - I think
|
||
devices should probably be a separate table and class from monitors. Not
|
||
critical but would represent a better model.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Comments - Needs many more, but that's
|
||
just me I'm hopeless at commenting things out. I'll get round to it soon though
|
||
honest! You're lucky to even get this document.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Optimised zones - The zones could do
|
||
with being sorted out a bit to optimise the processing of overlapping ones, at
|
||
the moment you can waste resource unless your zones are kept very tidy.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Create zones using server side image
|
||
maps - This would make it easier to precisely define and see where your zone is
|
||
going to go. Not critical but handy but a bugger to do.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Zone Definitions - Allow zones to be
|
||
defined according to a colour coded bitmap or as polygons. Currently all zones
|
||
are rectangular this would add a bit of flexibility. Would need a bit of a
|
||
rewrite though. This will incur a slight penalty on startup and a very slight
|
||
one on processing for all reasonably shaped zones.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Security - I think I need to give the
|
||
php file a bit of a good going over as I'm sure it's not done in the most
|
||
secure way regarding passing things onto command line, exposing file paths and
|
||
other stuff. I'm a bit of a PHP novice, as I'm sure you can tell so might need
|
||
help here. I should have done it in perl!</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Mouseover help - A bit more help
|
||
popping up when you mouseover things would be handy. A bit more help full stop
|
||
actually.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>WAP interface - A bit of a crusade of
|
||
mine I'm afraid. I'd like to put a WML interface on to allow you to view event
|
||
listing and perhaps the most significant image from each event on your phone.
|
||
Also simple management. From version 0.9.7 there is a very basic crude initial
|
||
version that probably won't work with your phone but its there as a testbed.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Automatic device configuration - Video
|
||
4 Linux supports various device queries, it should be possible to get most of
|
||
the device capability information from the device itself. The zmu utility does
|
||
this now but it's not yet integrated into the web pages.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Extend the API. Well ok it's not
|
||
really got an API yet but the image data is held in shared memory in a very
|
||
simple format. In theory you could use the capture daemon to gab the images and
|
||
other things could read them from memory or the analysis daemon could read
|
||
images from elsewhere. Either way this should be done through an API, and would
|
||
need a library I think. Also the zmu utility could probably do a whole lot more
|
||
to enable other things to manage when the daemons become active etc.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Access control should probably be
|
||
built in rather than relying on .htaccess etc. This is a frequently requested
|
||
feature (FRF) and must be done soon.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Create .rpm packages (as there can be
|
||
several dependencies) and maybe other types of packages also, e.g. for Debian
|
||
distributions.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Allow ZoneMinder to 'train' itself by
|
||
allowing the user to select events that are considered important and to discard
|
||
those that should be ignored. ZoneMinder will interpolate, add a bit of magic,
|
||
and recommend settings that will support this selection automatically
|
||
thereafter. The hooks for this are already in to some extent.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Add quotes to all PHP array
|
||
references. I should have done it in the first place but I'm a perl person
|
||
really and it kind of bugs me that you have to.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l3 level1 lfo10;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Add sound support to allow a captured
|
||
audio channel to be associated with a video device.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>9.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Bugs<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l10 level1 lfo11;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>I'm not sure if this is a bug or by
|
||
design but the timestamp is added to the image by the capture daemon. I _think_
|
||
this isn't necessary as it may contribute to alarms, plus the time is
|
||
associated with the image anyway. So I think this should be moved to the
|
||
analysis daemon.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l10 level1 lfo11;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>I suspect there may be a bug in
|
||
zmaudit.pl if your monitor names have spaces in them. I've not been able to
|
||
reproduce it but to be on the safe side don't put spaces in your Monitor names.</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l10 level1 lfo11;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>When opening a link to an event etc
|
||
from a notification email the window that is opened is just a regular browser
|
||
window and not in the context of a proper ZoneMinder web interface. Thus it
|
||
comes up too big usually (not a major issue) and also things like 'Delete'
|
||
don't work as it wants to do things to its parent (which is more of a major
|
||
issue).</span></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l10 level1 lfo11;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>The .sock files used by the *nix
|
||
sockets I suspect may have the odd permission issue now and again. I think
|
||
everything recovers from it but it needs checking out.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Probably bucket loads more, just fire
|
||
them at me.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>10.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>Non-Bugs<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:
|
||
l1 level1 lfo12;tab-stops:36.0pt'><![if !supportLists]><span lang=EN-GB
|
||
style='font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><span lang=EN-GB>Yes, those are tabs in the indents; I
|
||
like tabs so don't go changing them to spaces or else. Also yes I also like my
|
||
opening braces on their own line most of the time, what's the point of brackets
|
||
that don't line up?</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Everything else that isn't definitely
|
||
broken is probably deliberate, or was once anyway.</span></p>
|
||
|
||
<h1><![if !supportLists]><span lang=EN-GB style='text-decoration:none;
|
||
text-underline:none'>11.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span><![endif]><u><span lang=EN-GB>License<o:p></o:p></span></u></h1>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder is released under the GPL,
|
||
see below.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB><![if !supportEmptyParas]> <![endif]><o:p></o:p></span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>ZoneMinder README, $Date: 2003/06/12
|
||
14:50:31 $, $Revision$</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>Copyright (C) 2003<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>Philip Coombes</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>This program is free software; you can
|
||
redistribute it and/or modify it under the terms of the GNU General Public
|
||
License as published by the Free Software Foundation; either version 2 of the
|
||
License, or (at your option) any later version.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>This program is distributed in the hope
|
||
that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
||
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>See the GNU General Public License for more
|
||
details.</span></p>
|
||
|
||
<p class=MsoPlainText><span lang=EN-GB>You should have received a copy of the
|
||
GNU General Public License along with this program; if not, write to the Free
|
||
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA<span
|
||
style="mso-spacerun: yes"><EFBFBD> </span>02111-1307, USA.</span></p>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|