4275 lines
214 KiB
HTML
4275 lines
214 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:st1="urn:schemas-microsoft-com:office:smarttags"
|
||
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 10">
|
||
<meta name=Originator content="Microsoft Word 10">
|
||
<link rel=File-List href="README_files/filelist.xml">
|
||
<title>ZoneMinder v0.9.15</title>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="country-region"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="PostalCode"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="State"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="Street"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="address"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="time"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="City"/>
|
||
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
|
||
name="place"/>
|
||
<!--[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>113</o:TotalTime>
|
||
<o:Created>2003-07-10T20:46:00Z</o:Created>
|
||
<o:LastSaved>2003-07-10T20:46:00Z</o:LastSaved>
|
||
<o:Pages>1</o:Pages>
|
||
<o:Words>14952</o:Words>
|
||
<o:Characters>85227</o:Characters>
|
||
<o:Company>Triornis</o:Company>
|
||
<o:Lines>710</o:Lines>
|
||
<o:Paragraphs>199</o:Paragraphs>
|
||
<o:CharactersWithSpaces>99980</o:CharactersWithSpaces>
|
||
<o:Version>10.2625</o:Version>
|
||
</o:DocumentProperties>
|
||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||
<w:WordDocument>
|
||
<w:View>Print</w:View>
|
||
<w:Zoom>BestFit</w:Zoom>
|
||
<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:UseWord97LineBreakingRules/>
|
||
</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:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
|
||
</w:WordDocument>
|
||
</xml><![endif]--><!--[if !mso]><object
|
||
classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
|
||
<style>
|
||
st1\:*{behavior:url(#ieooui) }
|
||
</style>
|
||
<![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:0cm;
|
||
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-fareast-language:EN-US;}
|
||
h1
|
||
{mso-style-next:Normal;
|
||
margin-top:12.0pt;
|
||
margin-right:0cm;
|
||
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-bidi-font-family:"Times New Roman";
|
||
mso-font-kerning:16.0pt;
|
||
mso-fareast-language:EN-US;
|
||
mso-bidi-font-weight:normal;
|
||
text-decoration:underline;
|
||
text-underline:thick;}
|
||
h2
|
||
{mso-style-next:Normal;
|
||
margin-top:12.0pt;
|
||
margin-right:0cm;
|
||
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-bidi-font-family:"Times New Roman";
|
||
mso-fareast-language:EN-US;
|
||
mso-bidi-font-weight:normal;
|
||
text-decoration:underline;
|
||
text-underline:single;}
|
||
p.MsoHeader, li.MsoHeader, div.MsoHeader
|
||
{margin:0cm;
|
||
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-fareast-language:EN-US;}
|
||
p.MsoFooter, li.MsoFooter, div.MsoFooter
|
||
{margin:0cm;
|
||
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-fareast-language:EN-US;}
|
||
p.MsoTitle, li.MsoTitle, div.MsoTitle
|
||
{margin-top:12.0pt;
|
||
margin-right:0cm;
|
||
margin-bottom:3.0pt;
|
||
margin-left:0cm;
|
||
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-fareast-language:EN-US;
|
||
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:0cm;
|
||
margin-right:0cm;
|
||
margin-bottom:9.0pt;
|
||
margin-left:0cm;
|
||
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-fareast-language:EN-US;}
|
||
pre
|
||
{margin:0cm;
|
||
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;
|
||
mso-ansi-language:EN-US;
|
||
mso-fareast-language:EN-US;}
|
||
@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-even-header:url("README_files/header.html") eh1;
|
||
mso-header:url("README_files/header.html") h1;
|
||
mso-even-footer:url("README_files/header.html") ef1;
|
||
mso-footer:url("README_files/header.html") f1;
|
||
mso-first-header:url("README_files/header.html") fh1;
|
||
mso-first-footer:url("README_files/header.html") ff1;
|
||
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:0cm;
|
||
text-indent:0cm;}
|
||
@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:0cm;
|
||
text-indent:0cm;}
|
||
@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:0cm;
|
||
text-indent:0cm;}
|
||
@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:0cm;
|
||
text-indent:0cm;}
|
||
@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:0cm;
|
||
text-indent:0cm;}
|
||
@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:0cm;
|
||
text-indent:0cm;}
|
||
@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:0cm;
|
||
text-indent:0cm;}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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";
|
||
mso-bidi-font-family:"Times New Roman";}
|
||
@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:0cm;}
|
||
ul
|
||
{margin-bottom:0cm;}
|
||
-->
|
||
</style>
|
||
<!--[if gte mso 10]>
|
||
<style>
|
||
/* Style Definitions */
|
||
table.MsoNormalTable
|
||
{mso-style-name:"Table Normal";
|
||
mso-tstyle-rowband-size:0;
|
||
mso-tstyle-colband-size:0;
|
||
mso-style-noshow:yes;
|
||
mso-style-parent:"";
|
||
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
|
||
mso-para-margin:0cm;
|
||
mso-para-margin-bottom:.0001pt;
|
||
mso-pagination:widow-orphan;
|
||
font-size:10.0pt;
|
||
font-family:"Times New Roman";}
|
||
</style>
|
||
<![endif]--><!--[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-GB link=blue vlink=purple style='tab-interval:36.0pt'>
|
||
|
||
<div class=Section1>
|
||
|
||
<p class=MsoTitle><u>ZoneMinder v0.9.15<o:p></o:p></u></p>
|
||
|
||
<h1 style='page-break-before:auto'><![if !supportLists]><span style='mso-fareast-font-family:
|
||
Arial;mso-bidi-font-family:Arial;text-decoration:none;text-underline:none'><span
|
||
style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]><u>Introduction<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>2.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Requirements<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>ZoneMinder needs a couple of things to work.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>3.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Building<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>The first thing you need to do is run the included
|
||
configure script to define some initial configuration, just type</p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>./configure
|
||
--with-mysql=<your MySQL root> --with-webdir=<your web directory>
|
||
--with-cgidir=<your cgi directory><o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText>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</p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>./configure <20>help<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText>for details.</p>
|
||
|
||
<p class=MsoPlainText>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</p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>perl ./zmconfig.pl<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText>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</p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>perl ./zmconfig.pl
|
||
-noi<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText>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 <20>options<6E> section of the web
|
||
interface. Only the first set need to be completed with zmconfig at this stage.</p>
|
||
|
||
<p class=MsoPlainText>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'.</p>
|
||
|
||
<p class=MsoPlainText>If you are a first time user the first run of zmconfig.pl
|
||
will warn you about the missing database, you can ignore those errors this
|
||
time. Once you<6F>ve run it for the first time the schema file should have your
|
||
desired database name in it so use it to create the database (see below). Once
|
||
the database and permissions are set up rerun zmconfig.pl with the <20>noi option
|
||
to get it to load the configuration into your new database.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>For a new installation the simplest way to create your
|
||
database and users is as follows,</p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>mysql mysql <
|
||
zmschema.sql<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>mysql mysql<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>grant
|
||
select,insert,update,delete on <your database name>.* to '<your first
|
||
username>'@localhost identified by '<your first password>';<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>grant select on
|
||
<your database name>.* to '<your second username>'@localhost
|
||
identified by '<your second password>'<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>quit<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>mysqladmin reload<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>Then just type <i style='mso-bidi-font-style:normal'>'make'</i>
|
||
and off you go.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>4.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Installation<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>Once the build has completed you should have several
|
||
shiny new binaries. I will now briefly describe what each of them does.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmc</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zma</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmf</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zms</b> - This is the ZoneMinder Streaming server. The web interface
|
||
connects with this to get real-time or historical streamed images.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmu</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmfix</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmpkg.pl</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmdc.pl</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmfilter.pl</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmaudit.pl</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmx10.pl</b> - 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<EFBFBD>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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zmwatch.pl</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:18.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>zm</b> - This is the (optional) ZoneMinder init script, see below for
|
||
details.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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</p>
|
||
|
||
<p class=MsoPlainText><i style='mso-bidi-font-style:normal'>/sbin/chkconfig
|
||
--add zm<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>Now start your web browser and point it at your zm.php
|
||
and off you go.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>5.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Tutorial<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>5.1.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Defining
|
||
Monitors</h2>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>The options explained in a little more detail are as
|
||
follows,</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Name</b> - First choose a name for it, anything you like. </p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Function</b> - 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'. </p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Source Type</b> <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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Device Number/Channel</b> <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. </p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Device Format</b> <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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Remote Host/Port/Path</b> <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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Orientation</b> <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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Capture Width/Height</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Capture Palette</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Timestamp Label Format</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Timestamp Label X/Y</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Image Buffer Size</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Warm-up Frames </b>- 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Pre/Post Event Image Buffer</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Maximum FPS</b> <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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>FPS Report Interval</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Reference Image Blend %ge</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>X10 Activation String</b> - 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,</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>n</u> : 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>!n</u> : 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>n+</u> : 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>n+<seconds></u> : As
|
||
per the previous mode except that the monitor will deactivate itself after the
|
||
given number of seconds.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>n-</u> : 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>n-<seconds></u> : As
|
||
per the previous mode except that the monitor will activate itself after the
|
||
given number of seconds.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'>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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>X10 Input Alarm String</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>X10 Output Alarm String</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText>Finally, click 'Save' to add your monitor.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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
|
||
<EFBFBD>Montage<EFBFBD> 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. </p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>5.2.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Defining
|
||
Zones</h2>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Name</b> <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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Type</b> - This is one of the more important concepts in ZoneMinder and
|
||
there are five to choose from.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>Active</u> : 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. </p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>Inclusive</u> : 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>Exclusive</u> : 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>Preclusive</u> : 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><u>Inactive </u>: 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'>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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Units</b> - 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. </p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Min/Maximum X/Y</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Alarm Colour </b>- 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Alarm Threshold</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Min/Maximum Alarmed Area</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Filter Width/Height</b> <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. </p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Min/Maximum Filtered Area</b> <20> 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Min/Maximum Blob Area</b> - 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.</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:27.0pt'><b style='mso-bidi-font-weight:
|
||
normal'>Min/Maximum Blobs </b>- 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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>5.3.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Viewing
|
||
Monitors</h2>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>5.4.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Filtering
|
||
Events</h2>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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'.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>5.5.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Viewing
|
||
Events</h2>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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).</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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 <st1:City><st1:place>Berkeley</st1:place></st1:City>
|
||
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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>5.6.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Options
|
||
and Users</h2>
|
||
|
||
<p class=MsoPlainText>The final area covered by the tutorial is the options and
|
||
user section. If you are running in authenticated mode and don<6F>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>As mentioned above, you may also see a <20>users<72> 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.</p>
|
||
|
||
<p class=MsoPlainText>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 <20>monitors<72>
|
||
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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>Have fun, please report any bugs or features you'd like
|
||
to see and hopefully ZoneMinder can be your camera monitoring friend!</p>
|
||
|
||
<p class=MsoPlainText>Philip Coombes (philip.coombes@zoneminder.com) - July
|
||
2003</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>6.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Troubleshooting<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>Some things to check.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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!</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;mso-list:skip'>"Sep 14 <st1:time
|
||
Minute="50" Hour="14">14:50:11</st1:time> localhost zma-0[1975]: INF [Front:
|
||
221000 - Processing at 4.26 fps ]"</p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt;mso-list:skip'>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:"Courier New";mso-fareast-font-family:"Courier New"'><span
|
||
style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span></i><![endif]>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></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'><i style='mso-bidi-font-style:
|
||
normal'>perl -MCPAN -eshell<o:p></o:p></i></p>
|
||
|
||
<p class=MsoPlainText style='margin-left:36.0pt'>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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<EFBFBD>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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).</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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<69>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</p>
|
||
|
||
<p class=MsoPlainText>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</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Change
|
||
Log <o:p></o:p></u></h1>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.1.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.15</h2>
|
||
|
||
<p class=MsoPlainText>Various bug fixes from the last release and before.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Bandwidth. A bug was introduced in .14 which
|
||
caused a corrupted console display and manic refreshes on new installations.
|
||
This was due to a missing bandwidth setting when no existing cookie was
|
||
detected. This is now fixed.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Again in .14 a problem occurred for a new
|
||
release whereby zmconfig wanted to know the database details and but also
|
||
previously wanted to access the database before it had asked the questions. This
|
||
has now been addressed though it does require that zmconfig is run twice
|
||
initially, once to created the scripts and once to import the configuration
|
||
into the database.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>In association with the previous error, the
|
||
zm_config_defines.h file was not created in the absence of the database as this
|
||
was what was used to assign configuration ids. This now takes place regardless
|
||
of the database.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>The SQL to create the Users table was mistakenly
|
||
omitted from the .12 database upgrade script this has now been corrected.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>A bug in zmfilter was pointed out whereby the
|
||
dynamic loading of the Zip or Tar archive modules depending on a preference
|
||
actually wasn<73>t. It was looking for both and loading both at compile time. This
|
||
has now been modified to be fully runtime.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>The database user definitions in the zmvideo
|
||
script indicated one database user while the database connection used a
|
||
different one. This prevented any videos being generated.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>A problem was found if using the zmf frame
|
||
server and greyscale images. The option to colourise JPEG images is intended to
|
||
be used to ensure that all JPEG files are written with a 24 bit colourspace as
|
||
certain tools such as ffmpeg require this. However in the circumstances
|
||
described above images written by zma directly were colourised whereas those
|
||
written by<span style='mso-spacerun:yes'><EFBFBD> </span>zmf weren<65>t. A change has
|
||
been made whereby if set all greyscale JPEG images are colourised in all
|
||
circumstances.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.2.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.14</h2>
|
||
|
||
<p class=MsoPlainText>Major new feature and important bug-fixes.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Following a number of requests the .sock file
|
||
directory is now configurable in zmconfig.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>A bug was found in zmx10.pl causing a crash if
|
||
time delayed X10 events were used. This has now been fixed.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>All SQL buffers in the C++ code have been
|
||
enlarged. There was previously an issue with a buffer overflow on certain
|
||
occasions.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.3.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.13</h2>
|
||
|
||
<p class=MsoPlainText>Beta version of several features and fixes, never
|
||
generally released.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Following a number of requests the .sock file
|
||
directory is now configurable in zmconfig.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed not numeric comparison in zmwatch which
|
||
was causing, or appeared to be causing, some errors.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Some redundant window scrollbars removed.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.4.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.12</h2>
|
||
|
||
<p class=MsoPlainText>Mostly bug-fixes with a couple of minor features.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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. </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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed monitor rename bug. Renaming a monitor did
|
||
not correctly modify the events directory to reflect this. This has now been
|
||
fixed.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed remote camera memory leak. A memory leak
|
||
was reported when capturing with remote cameras, this is now fixed.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Orientation. Added option to rotate or invert
|
||
captured images for cameras mounted at unusual angles.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Stylesheet change. Previously the stylesheet
|
||
didn<EFBFBD>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. </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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Delete monitor confirm. Due to some unfortunate
|
||
accidents by users, attempts to delete monitors will now require confirmation.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Detect linmysqlclient.a. Added better detection
|
||
script into <20>configure<72> top spot when libmysqlclient.a is missing.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.5.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.11</h2>
|
||
|
||
<p class=MsoPlainText>Various new features and fixes.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Tabulated events <20> The main events view is now
|
||
tabulated to look a bit nicer.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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. </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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed Mozilla JavaScript <20> Various JavaScript
|
||
functionality did not function on Mozilla, Netscape and other browsers. This is
|
||
now (hopefully) fixed.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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!</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added ffmpeg support <20> Historically ZoneMinder
|
||
has only supported the <st1:City><st1:place>Berkeley</st1:place></st1:City>
|
||
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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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!</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.6.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.10</h2>
|
||
|
||
<p class=MsoPlainText>Many bug-fixes and major feature enhancements.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Low event id bug - Fixed bug where events with
|
||
an id of < 1000 were being cleaned up by zmaudit.pl by mistake.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Alarm reference update - Added option to not blend
|
||
alarmed images into the reference image. See the help in zmconfig.pl for
|
||
caveats.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Disappearing monitors - Fixed the disappearing
|
||
monitor problem in the console view where monitors with no events were randomly
|
||
not being shown.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Clean and tidy - Cleaned up a load of compiler
|
||
warnings and miscellanea to ensure a cleaner happier build.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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).</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Expire streams - Added expiry headers to
|
||
streamed images so they will always display fully.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>USR blocking <20> The debug USR signals were not
|
||
being blocked properly leading to nasty effects in zmc mostly.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.7.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.9</h2>
|
||
|
||
<p class=MsoPlainText>Mainly bug-fixes and minor feature enhancements.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added creation of events directory - Previously
|
||
the 'events' directory was not created on install, this has been fixed.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Corrected extraneous Width to be Height - The
|
||
last version of zmu included a Width comment which should have been height.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Zone deletion problem - A problem was found such
|
||
that when deleting zones the appropriate daemons were not being asked to
|
||
restart daemons correctly.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Console changes - The current version number is
|
||
now displayed in the console. A refresh button has also been added along with a
|
||
minor reorg.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.8.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.8</h2>
|
||
|
||
<p class=MsoPlainText>Several new features and bug-fixes</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>(especially with the -v option). These options can
|
||
then be used as a starting point for your ZoneMinder configuration.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added FPS in status field - The status field in
|
||
the web monitor views now contains an FPS setting as well as the status.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Zmconfig changes - zmconfig handles missing
|
||
options better and rewrites config file even in non-interactive mode.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed config problems in zmcfg.h - Some config
|
||
was not being set up correctly in zmcfg.h.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Revamped the console window slightly - The
|
||
console window has now been reformatted slightly to give more and better
|
||
information including server load.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed cambolzola opt bug - There was a bug in
|
||
the Cambozola options, I can't remember what it was but it's fixed!</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Looser video configuration - Some video
|
||
configuration errors can now be ignored via the STRICT_VIDEO_CONFIG option.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.9.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.9.7</h2>
|
||
|
||
<p class=MsoPlainText>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. </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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added zmconfig.pl script to help with
|
||
configuration.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Revamped to work better with configure scripts</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Monitors now have more configuration options,
|
||
including some that were statically defined before such as location and format
|
||
of the image timestamps.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Removed Alarms table from schema as not
|
||
required, never was actually...</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added a number of new scripts, see the scripts
|
||
directory</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added event filter to enable bulk viewing,
|
||
upload or deletion of events according to various attributes. Filter can be
|
||
saved and edited.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added last event id to shared memory for
|
||
auto-filtering etc.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Changed zmu -i option to write to monitor named
|
||
image file.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Made shared memory management somewhat more
|
||
sensible.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Now stores DB times as localtime rather than UTC
|
||
avoiding daylight saving related bugs.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed bug with inactive zones and added more
|
||
debug.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Changed main functions to return int.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added help and usage to zmu.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed browser acceptance problem, more easily
|
||
defaults to HTML.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Split out the PHP files into a bunch with
|
||
specific functions rather than one monolithic one.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed NetPBM paths and changed _SERVER to
|
||
HTTP_SERVER_VARS.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added HUP signal on zone deletion.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added NETPBM_DIR and conditional netpbm stuff.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Removed hard coded window sizes, all popup
|
||
window dimensions can be specified in zmconfig.php</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Changed form methods to 'get' from 'post' to
|
||
avoid resubmit warnings all the time.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Added conditional sound to alarm on web
|
||
interface.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Fixed syntax error when adding default monitor.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Some of the web views have changed slightly to
|
||
accommodate the separate events view.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>And much much more, probably...</p>
|
||
|
||
<h2><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>7.10.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]>Release
|
||
0.0.1</h2>
|
||
|
||
<p class=MsoPlainText>Initial release, therefore nothing new.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>8.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>To
|
||
Do<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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!</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Mouseover help - A bit more help popping up when
|
||
you mouseover things would be handy. A bit more help full stop actually.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Create .rpm packages (as there can be several
|
||
dependencies) and maybe other types of packages also, e.g. for Debian
|
||
distributions.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>Add sound support to allow a captured audio
|
||
channel to be associated with a video device.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>9.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Bugs<o:p></o:p></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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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).</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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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.</p>
|
||
|
||
<p class=MsoPlainText>Probably bucket loads more, just fire them at me.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>10.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>Non-Bugs<o:p></o:p></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 style='font-family:
|
||
"Courier New";mso-fareast-font-family:"Courier New"'><span style='mso-list:
|
||
Ignore'>o<span style='font:7.0pt "Times New Roman"'>
|
||
</span></span></span><![endif]>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?</p>
|
||
|
||
<p class=MsoPlainText>Everything else that isn't definitely broken is probably
|
||
deliberate, or was once anyway.</p>
|
||
|
||
<h1><![if !supportLists]><span style='mso-fareast-font-family:Arial;mso-bidi-font-family:
|
||
Arial;text-decoration:none;text-underline:none'><span style='mso-list:Ignore'>11.<span
|
||
style='font:7.0pt "Times New Roman"'> </span></span></span><![endif]><u>License<o:p></o:p></u></h1>
|
||
|
||
<p class=MsoPlainText>ZoneMinder is released under the GPL, see below.</p>
|
||
|
||
<p class=MsoPlainText><o:p> </o:p></p>
|
||
|
||
<p class=MsoPlainText>ZoneMinder README, $Date: 2003/07/08 <st1:time Hour="9"
|
||
Minute="24">09:24:03</st1:time> $, $Revision$</p>
|
||
|
||
<p class=MsoPlainText>Copyright (C) 2003<span style='mso-spacerun:yes'><EFBFBD>
|
||
</span>Philip Coombes</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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.</p>
|
||
|
||
<p class=MsoPlainText>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., <st1:Street><st1:address>59 Temple Place</st1:address></st1:Street> - <st1:address><st1:Street>Suite</st1:Street>
|
||
330</st1:address>, <st1:place><st1:City>Boston</st1:City>, <st1:State>MA</st1:State><span
|
||
style='mso-spacerun:yes'><EFBFBD> </span><st1:PostalCode>02111-1307</st1:PostalCode>,
|
||
<st1:country-region>USA</st1:country-region></st1:place>.</p>
|
||
|
||
</div>
|
||
|
||
</body>
|
||
|
||
</html>
|