Difference between revisions of "General Notes"

From ZoneMinder Wiki
Jump to navigationJump to search
 
(26 intermediate revisions by 14 users not shown)
Line 32: Line 32:


==== Create and Populate the Database ====
==== Create and Populate the Database ====
* http://www.zoneminder.com/forums/viewtopic.php?t=5754<br>
* http://forums.zoneminder.com/viewtopic.php?t=5754<br>
* http://www.zoneminder.com/forums/viewtopic.php?t=6023<br>
* http://forums.zoneminder.com/viewtopic.php?t=6023<br>
<code>
<code>
:mysql mysql < db/zm_create.sql
:mysql mysql < db/zm_create.sql
Line 77: Line 77:
Cambozola is a Java plugin that decodes multipart JPEG streams. Mozilla-based browser have native support, so this plugin is for browsers like Internet Explorer that lack that support.
Cambozola is a Java plugin that decodes multipart JPEG streams. Mozilla-based browser have native support, so this plugin is for browsers like Internet Explorer that lack that support.


To install Cambozola for use in zm, Download the cambozola.jar file from the Downloads page or directly from the charliemouse website. If you download from charliemouse you will need to extract the one file (cambozola.jar) from the archive. Place cambozola.jar in the ZM root web directory (so if your web pages for ZM is installed at /var/www/html/zm the file should go there as well). Now all thats left to be done is to enable it in ZM goto options and under the web tab check that cambozola is enabled. Thats it, you'r done.
To install Cambozola for use in zm, Download the cambozola.jar file from the Downloads page or directly from the charliemouse website. If you download from charliemouse you will need to extract the one file (cambozola.jar) from the archive. Place cambozola.jar in the ZM root web directory (so if your web pages for ZM is installed at /var/www/html/zm the file should go there as well). Now all thats left to be done is to enable it in ZM goto options and under the web tab check that cambozola is enabled. In 1.25 you will find OPT_CAMBOZOLA under the '''Images''' tab. That's it, you're done.


* http://www.zoneminder.com/forums/viewtopic.php?t=5745
* http://www.zoneminder.com/forums/viewtopic.php?t=5745
* http://www.zoneminder.com/forums/viewtopic.php?t=6320
* http://www.zoneminder.com/forums/viewtopic.php?t=6320
NOTE: If you find that the Cambozola applet loads in IE but the applet just displays the version # of Cambozola and the author's name (as opposed to seeing the streaming images), you may need to chmod your cambozola.jar:
  $ sudo chmod 775 cambozola.jar
Once I did this, images started to stream for me.
NOTE: If you find that Cambozola doesn't load in IE at all, but instead you get a black 'X' where the video should be, Zoneminder is incorrectly detecting that your IE can handle MJPEG streams.  To fix, go to '''Options''' then '''High B/W''', '''Medium B/W''', or '''Low B/W''' (depending on which you use) and set the option '''Override the automatic detection of browser streaming capability''' to "no".  This will force all browsers to use Cambozola.  Also, with modern versions of Java, you'll probably also have to go into your Control Panel to the Java options and add the URL of your Zoneminder instance to your Exception Site List, due to the fact that Cambozola.jar is self-signed.  Otherwise you'll get a Java message '''Application Blocked by Security Settings'''


==Capture Card Issues==
==Capture Card Issues==
Line 90: Line 98:
* Applies to 4 inputs on one chip, using lspci and dmesg to determine hardware.
* Applies to 4 inputs on one chip, using lspci and dmesg to determine hardware.
**http://www.zoneminder.com/forums/viewtopic.php?t=6024
**http://www.zoneminder.com/forums/viewtopic.php?t=6024
**http://www.zoneminder.com/wiki/index.php/Pico2000
==== Black Screen bttv Video Devices ====
* Black Screen in ZM when using 2.6.21.5 kernel '''but''' works with TVTime
** http://www.zoneminder.com/forums/viewtopic.php?t=10108 describes why a V4L2 app has to init the devices 1st before a V4L1 app.
** A script to workaround this is available at http://www.zoneminder.com/forums/viewtopic.php?t=9414


==CAUSE NOTES field section==
==CAUSE NOTES field section==
Line 113: Line 127:


==== Database Tricks/Tips ====  
==== Database Tricks/Tips ====  
* My personal recommendation is to try converting your database over to INNODB tables.
 
** Researching the web I found this to be faster for larger tables (as events grow) and much more reliable.  
=====MySQL Tune Up=====
For small one or two camera systems with few events the default MySQL settings should work quite well. Hi resolution cameras with lots of activity or monitors on Record or Mocord will run up thousands of events in short order. This will put a strain on MySQL with default settings.
Many Linux distributions provide MySQL 5.5 or older. For these I recommend setting up MySQL to use INNODB tables. Researching the web I found this to be faster for larger tables (as events grow) and much more reliable. to do this:
 
Edit the MySQL config file (for Ubuntu 14.04 it is /etc/mysql/my.cnf) and add:
 
[mysqld]
 
innodb_file_per_table
 
If you have a running system you can convert to INNODB
*[[Enable and convert MySQL to innodb_file_per_table for Zoneminder]]
 
 
One tool I use is mysqltuner. This is run from the command line and gives clear instructions as to what values to change. If these instructions are not clear to you I recommend my friend Google.
 
On a new system under load we recommend running mysqltuner daily until you get to stability with the amount of events you store.
 
When you run mysqltuner you will be prompted to enter the admin user (normally root) and then the password.
 
Many of the settings in MySQL are "default" and are not listed in the configuration file. So, if mysqltuner recommends you change the value for innodb_buffer_pool_size and you open the my.cnf (or other config file) and you do not find the value you will have to add it! Something like this:
 
[mysqld]
 
innodb_file_per_table
 
innodb_buffer_pool_size = 512m  (Note that memory values can be also written in bytes)
 
Stop Zoneminder, restart MySQL, then start Zoneminder to apply changes
 
 
Forum topics about MySQL
* http://www.zoneminder.com/forums/viewtopic.php?t=6000
* http://www.zoneminder.com/forums/viewtopic.php?t=6000
* http://www.zoneminder.com/forums/viewtopic.php?t=6143
* http://www.zoneminder.com/forums/viewtopic.php?t=6143
Line 140: Line 185:
*After getting ffmpeg from CVS, do:
*After getting ffmpeg from CVS, do:
<code>./configure , make,  make install, make installibs</code>
<code>./configure , make,  make install, make installibs</code>
===Changes in ffmpeg again===
It would seem that ffmpeg has possibly changed things again, no real supprise there but it complicates building ZM.
So if you find when you make:
zm_mpeg.h:29:29: error: ffmpeg/avformat.h: No such file or directory
zm_mpeg.h:31:28: error: ffmpeg/swscale.h: No such file or directory
and whereis turns up:
/usr/include/libavformat/avformat.h
/usr/include/libswscale/swscale.h
The file you would need to change is zm_mpeg.h
and change the following two lines in that file:
#include <ffmpeg/avformat.h>
#include <ffmpeg/swscale.h>
Would have to be canged to:
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>


==Increase Image size==
==Increase Image size==
Line 159: Line 233:
*KMC-8800 8-chip bt878 capture card
*KMC-8800 8-chip bt878 capture card
** http://www.zoneminder.com/forums/viewtopic.php?t=5609
** http://www.zoneminder.com/forums/viewtopic.php?t=5609
** http://www.linuxtv.org/v4lwiki/index.php/Kodicom_4400R
** http://www.linuxtv.org/wiki/index.php/Kodicom_4400R
** http://www.linuxtv.org/wiki/index.php/Kodicom_8800R
** http://www.zoneminder.com/forums/viewtopic.php?t=6012
** http://www.zoneminder.com/forums/viewtopic.php?t=6012


Line 213: Line 288:
==External Triggering==
==External Triggering==
====zmtrigger.pl====
====zmtrigger.pl====
Some discussion on using external events (X10 for example) to trigger your ZM camera: 
    http://www.zoneminder.com/forums/viewtopic.php?t=6423&highlight=
(Could use your help here)
(Could use your help here)


Line 228: Line 306:
*http://www.zoneminder.com/forums/viewtopic.php?t=6101
*http://www.zoneminder.com/forums/viewtopic.php?t=6101
*http://wurfl.sourceforge.net/
*http://wurfl.sourceforge.net/
*http://www.mig.co.za


==Multiple zones==
==Multiple zones==
Line 243: Line 320:
*http://www.zoneminder.com/forums/viewtopic.php?t=5595
*http://www.zoneminder.com/forums/viewtopic.php?t=5595
*http://www.zoneminder.com/forums/viewtopic.php?t=5549
*http://www.zoneminder.com/forums/viewtopic.php?t=5549
*http://www.zoneminder.com/forums/viewtopic.php?t=12037


==Simultaneous connections (number off ) to Web browser==
==Simultaneous connections (number off ) to Web browser==
Line 264: Line 342:
*http://www.zoneminder.com/forums/viewtopic.php?t=5858
*http://www.zoneminder.com/forums/viewtopic.php?t=5858
*http://www.zoneminder.com/forums/viewtopic.php?t=5184&highlight=truck+intersection
*http://www.zoneminder.com/forums/viewtopic.php?t=5184&highlight=truck+intersection
*http://www.cnssystems.ca/


*All things are possible and the example someone posted a while back of detecting trucks and buses, but not cars, passing over a distant intersection is probably appropriate for you. What I would suggest you need are quite high pixel differences (indicating difference from the background) and pretty small counts of changed pixels or blob sizes. You might find it useful to turn on diagnostic images initially (and only for a while as they slow everything down a lot) which will output what ZM thinks the differences etc are are in the images.
*All things are possible and the example someone posted a while back of detecting trucks and buses, but not cars, passing over a distant intersection is probably appropriate for you. What I would suggest you need are quite high pixel differences (indicating difference from the background) and pretty small counts of changed pixels or blob sizes. You might find it useful to turn on diagnostic images initially (and only for a while as they slow everything down a lot) which will output what ZM thinks the differences etc are are in the images.
Line 281: Line 358:


==Zone Configurations and Fine Tunings==
==Zone Configurations and Fine Tunings==
The way I tuned my zones was to walk out in front of the camera and stand at the furthest distance from the camera where it would be useful to detect motion.
Then I replayed the footage and took a still of my standing away from the camera, loaded it into a photo editor and cropped the image to the size of my body.
Then looking at the image attibutes gave me the dimensions of the remaining space, I took the height and width and multiplied them to get a minumum number of changed pixels I wanted to cause an alarm.
I went into my zone and changed the units from percent to pixels. Then input the number I got from my previous calculation into the first two min fields, and subtracted 15% and put that number in the last minumum field.


* This section needs alot of work.  Please contribute as much as you can!
* This section needs alot of work.  Please contribute as much as you can!


Once you have Zoneminder up and running and all your cameras recording events, it then becomes important to fine tune your zones so that you record all of the events that are important to you, and just as important, NOT record events that are not important.
Once you have Zoneminder up and running and all your cameras recording events, it then becomes important to fine tune your zones so that you record all of the events that are important to you, and just as important, NOT record events that are not important


There are many parameters to be adjusted.  So many, in fact, that it is easy to change just a few parameters, and create a config that does not do what you want at all.  It is all so confusing.  Here, we will attempt to document some basic configs, and explain in some detail the effects that each parameter will have and how each parameter relates to the other parameters.
There are many parameters to be adjusted.  So many, in fact, that it is easy to change just a few parameters, and create a config that does not do what you want at all.  It is all so confusing.  Here, we will attempt to document some basic configs, and explain in some detail the effects that each parameter will have and how each parameter relates to the other parameters.
Line 291: Line 376:


[http://www.zoneminder.com/fileadmin/downloads/README.html#_Toc151468571  Zone Config Documentation]
[http://www.zoneminder.com/fileadmin/downloads/README.html#_Toc151468571  Zone Config Documentation]
[[Reference Image Blend Percentage aka Vapor Trails]]


[[Zone Parameter Explanations version 1.21]]
[[Zone Parameter Explanations version 1.21]]


[[Zone Parameter Explanations version 1.22]]
[[Zone Parameter Explanations version 1.22]]
[[Zone Analysis Pseudo Algorithm]]


[[Zone Configuration Basics]]
[[Zone Configuration Basics]]

Latest revision as of 11:19, 28 December 2017

Zoneminder Build Notes

Required for Building

  • MySQL www.lamphowto.com Notes on compiling MySQL from source
  • OpenSSL
  • PHP
  • Apache
  • Perl/Libperl

./configure will complain if anything is missing.

Installing from Source

./configure --with-mysql=/usr/local/mysql
--with-ffmpeg=/home/src/ffmpeg-0.4.9-pre1
--with-lame=/home/src/lame-3.96.1/libmp3lame
--with-webdir=/home/sites/Security.658Ridgecrest.com/web
--with-cgidir=/home/sites/Security.658Ridgecrest.com/web
--with-webuser=httpd
--with-webgroup=httpd
--with-libarch=lib
--enable-debug=yes

OR

./configure --with-webdir=/var/www/htdocs/ZM
--with-cgidir=/var/www/cgi-bin --sysconfdir=/etc
--with-webuser=httpd
--with-webgroup=httpd

OR

./configure --with-webdir=/var/www/html/zm
--with-cgidir=/var/www/cgi-bin ZM_DB_PASS=<password>

Create and Populate the Database

mysql mysql < db/zm_create.sql
mysql mysql
> grant select,insert,update,delete on <database name>.* to '<database user>'@localhost identified by '<database password>';
> quit
mysqladmin reload

Misc Notes (Anyone care to categorize?)

Check zone.conf or zm.conf. Check that there are no bogus vesions of this file lying around.
"nobody" doesn't have shell access, choose a different Apache alias like "httpd".
zmdc.log or /var/log/messages log any errors.
zm.sock file must be able to be created.

Apache

Permissions Problems

sudo -u apache /etc/rc.d/rc.zoneminder start

    • now.. zmc and zma is running on user apache

su Issue

http://www.zoneminder.com/forums/viewtopic.php?t=5652

Allowing CGI Execution (REQUIRED for ZM)

http://www.zoneminder.com/forums/viewtopic.php?t=5853

  • /usr/local/etc/zm.conf must exist and what process owns it.

webuser and webgroup must be correct for apache to have ownership over zm.conf

BIOS Issues

Turning off ACPI power management in the BIOS may help alleviate some issues with ZoneMinder and capture hardware.


Brightness control

Contribs Forum

The contribs forum contains contributions from ZoneMinder users like yourself!

Cambozola

Cambozola is a Java plugin that decodes multipart JPEG streams. Mozilla-based browser have native support, so this plugin is for browsers like Internet Explorer that lack that support.

To install Cambozola for use in zm, Download the cambozola.jar file from the Downloads page or directly from the charliemouse website. If you download from charliemouse you will need to extract the one file (cambozola.jar) from the archive. Place cambozola.jar in the ZM root web directory (so if your web pages for ZM is installed at /var/www/html/zm the file should go there as well). Now all thats left to be done is to enable it in ZM goto options and under the web tab check that cambozola is enabled. In 1.25 you will find OPT_CAMBOZOLA under the Images tab. That's it, you're done.

NOTE: If you find that the Cambozola applet loads in IE but the applet just displays the version # of Cambozola and the author's name (as opposed to seeing the streaming images), you may need to chmod your cambozola.jar:

 $ sudo chmod 775 cambozola.jar

Once I did this, images started to stream for me.

NOTE: If you find that Cambozola doesn't load in IE at all, but instead you get a black 'X' where the video should be, Zoneminder is incorrectly detecting that your IE can handle MJPEG streams. To fix, go to Options then High B/W, Medium B/W, or Low B/W (depending on which you use) and set the option Override the automatic detection of browser streaming capability to "no". This will force all browsers to use Cambozola. Also, with modern versions of Java, you'll probably also have to go into your Control Panel to the Java options and add the URL of your Zoneminder instance to your Exception Site List, due to the fact that Cambozola.jar is self-signed. Otherwise you'll get a Java message Application Blocked by Security Settings

Capture Card Issues

Image is Flipped

Scrambled Images

Black Screen bttv Video Devices

CAUSE NOTES field section

Database MySQL

Create a New Database

Repair a Database

Backup a Database

In Ubuntu and other modern distributions you can install MySQL administrator GUI.

the default login is :-
Server Hostname ---- localhost
Username ---- Root
Password ----- (Blank, no password)

In here, there is backup and restore functions. The backup can also be scheduled.

Delete Databases/Tables

Database Tricks/Tips

MySQL Tune Up

For small one or two camera systems with few events the default MySQL settings should work quite well. Hi resolution cameras with lots of activity or monitors on Record or Mocord will run up thousands of events in short order. This will put a strain on MySQL with default settings. Many Linux distributions provide MySQL 5.5 or older. For these I recommend setting up MySQL to use INNODB tables. Researching the web I found this to be faster for larger tables (as events grow) and much more reliable. to do this:

Edit the MySQL config file (for Ubuntu 14.04 it is /etc/mysql/my.cnf) and add:

[mysqld]

innodb_file_per_table

If you have a running system you can convert to INNODB


One tool I use is mysqltuner. This is run from the command line and gives clear instructions as to what values to change. If these instructions are not clear to you I recommend my friend Google.

On a new system under load we recommend running mysqltuner daily until you get to stability with the amount of events you store.

When you run mysqltuner you will be prompted to enter the admin user (normally root) and then the password.

Many of the settings in MySQL are "default" and are not listed in the configuration file. So, if mysqltuner recommends you change the value for innodb_buffer_pool_size and you open the my.cnf (or other config file) and you do not find the value you will have to add it! Something like this:

[mysqld]

innodb_file_per_table

innodb_buffer_pool_size = 512m (Note that memory values can be also written in bytes)

Stop Zoneminder, restart MySQL, then start Zoneminder to apply changes


Forum topics about MySQL

Update Database After Installing from RPM's

ffmpeg

  • Install ffmpeg for Fedora with

yum -i ffmpeg
yum -i ffmpeg-devel

rpm -ivh http://rpm.livna.org/livna-release4.rpm yum install ffmpeg ffmpeg-devel Place the devel stuff in /usr/include/ffmpeg Now configure, make, make install

./configure , make, make install, make installibs

Changes in ffmpeg again

It would seem that ffmpeg has possibly changed things again, no real supprise there but it complicates building ZM.

So if you find when you make:

zm_mpeg.h:29:29: error: ffmpeg/avformat.h: No such file or directory

zm_mpeg.h:31:28: error: ffmpeg/swscale.h: No such file or directory


and whereis turns up:

/usr/include/libavformat/avformat.h

/usr/include/libswscale/swscale.h


The file you would need to change is zm_mpeg.h and change the following two lines in that file:

  1. include <ffmpeg/avformat.h>
  2. include <ffmpeg/swscale.h>


Would have to be canged to:

  1. include <libavformat/avformat.h>
  2. include <libswscale/swscale.h>

Increase Image size

If you increase the image size on a camera, it's always best to close down any streams and restart ZM to make sure that all memory is released. http://www.zoneminder.com/forums/viewtopic.php?t=7049

Image display problems

http://www.zoneminder.com/forums/viewtopic.php?t=6027

Also remember you may need to increase your 'shared memory'. See the FAQ for details

Firefox, Colorzilla Extensions

http://www.zoneminder.com/forums/viewtopic.php?t=5647

Kodicom Capture Cards

Edit your /etc/modprobe.conf file and add this line:
options bttv card=77

All screens must be the same resolution.

note that under ubuntu that the file to edit is /etc/modprobe.d/aliases.

Logitech USB QuickCam

  • I'm using FC4 and had a similiar problem with a quickcam 4000.

I guess you are using the default module supplied with CentOS. I think, not sure about this though, that it is missing some capabilities. So I installed the pwc module (http://www.saillard.org/linux/pwc/INSTALL.en) and these crashes stopped. http://www.zoneminder.com/forums/viewtopic.php?t=5906


Message Logs

http://www.zoneminder.com/forums/viewtopic.php?t=5771

Memory Problems/Tweaks

SELinux Issues

cat sysctl.conf

  1. Disable response to broadcasts.
  2. You don't want yourself becoming a Smurf amplifier.

net.ipv4.icmp_echo_ignore_broadcasts = 1

  1. enable route verification on all interfaces

net.ipv4.conf.all.rp_filter = 1

  1. enable ipV6 forwarding
  2. net.ipv6.conf.all.forwarding = 1

kernel.shmall = 134217728 kernel.shmmax = 134217728

Mocord, Record, Modect

http://www.zoneminder.com/forums/viewtopic.php?t=6120

External Triggering

zmtrigger.pl

Some discussion on using external events (X10 for example) to trigger your ZM camera:

   http://www.zoneminder.com/forums/viewtopic.php?t=6423&highlight=

(Could use your help here)

Modprobe

modprobe.conf mod = 133 or something like that for Kodicom http://www.zoneminder.com/forums/viewtopic.php?t=5603

Official ZoneMinder Manual

http://www.zoneminder.com/fileadmin/downloads/README.html

MMS Gateway and API Aoftware

GPRS or HTTP a Jpeg image to the MMS gateway server which in turn sends the image to a mobile phone

Multiple zones

http://www.zoneminder.com/forums/viewtopic.php?t=6079

Perl Package zmpgk.pl

Roundrobin

Remote Camera Source/ Using Another ZM Box as a Source==

Simultaneous connections (number off ) to Web browser

Streaming

  • rtp and raw streaming

http://www.zoneminder.com/forums/viewtopic.php?t=5572

Settings

Timelapsed video

http://www.zoneminder.com/forums/viewtopic.php?t=6049

Vehicle Detection Links

  • All things are possible and the example someone posted a while back of detecting trucks and buses, but not cars, passing over a distant intersection is probably appropriate for you. What I would suggest you need are quite high pixel differences (indicating difference from the background) and pretty small counts of changed pixels or blob sizes. You might find it useful to turn on diagnostic images initially (and only for a while as they slow everything down a lot) which will output what ZM thinks the differences etc are are in the images.

Water marked

http://www.zoneminder.com/forums/viewtopic.php?t=4591&highlight=watermark http://www.zoneminder.com/forums/viewtopic.php?t=4188&highlight=watermark

xawtv

what from xawtv -hwscan? xawtv -device /dev/video?

zmc daemon captures the images

Zone Configurations and Fine Tunings

The way I tuned my zones was to walk out in front of the camera and stand at the furthest distance from the camera where it would be useful to detect motion.

Then I replayed the footage and took a still of my standing away from the camera, loaded it into a photo editor and cropped the image to the size of my body.

Then looking at the image attibutes gave me the dimensions of the remaining space, I took the height and width and multiplied them to get a minumum number of changed pixels I wanted to cause an alarm.

I went into my zone and changed the units from percent to pixels. Then input the number I got from my previous calculation into the first two min fields, and subtracted 15% and put that number in the last minumum field.

  • This section needs alot of work. Please contribute as much as you can!

Once you have Zoneminder up and running and all your cameras recording events, it then becomes important to fine tune your zones so that you record all of the events that are important to you, and just as important, NOT record events that are not important

There are many parameters to be adjusted. So many, in fact, that it is easy to change just a few parameters, and create a config that does not do what you want at all. It is all so confusing. Here, we will attempt to document some basic configs, and explain in some detail the effects that each parameter will have and how each parameter relates to the other parameters.

The Documentation page offers some help in understanding how these parameters are related and important. You can view the online documentation here:

Zone Config Documentation

Reference Image Blend Percentage aka Vapor Trails

Zone Parameter Explanations version 1.21

Zone Parameter Explanations version 1.22

Zone Analysis Pseudo Algorithm

Zone Configuration Basics

Zone Configuration Advanced

Special Situation Configs