ZoneMinder is a free, open source Closed-circuit television software application developed for Linux which supports IP, USB and Analog cameras.
Go to file
Isaac Connor b41a3b1b25 fix tabs/shiftwidth 2016-04-29 09:01:28 -04:00
cmake Merge pull request #896 from knnniggett/pod2man 2015-07-03 11:40:24 -04:00
db Merge branch 'icon_video' into storageareas 2016-04-06 12:50:46 -04:00
distros 2016042801 build 2016-04-28 12:58:09 -04:00
doc-pak Migrate svn to git 2013-03-17 00:45:21 +01:00
docs Merge branch 'master' into storageareas 2016-04-17 09:30:33 -04:00
misc Merge branch 'Autotools_delete' of https://github.com/SteveGilvarry/ZoneMinder into SteveGilvarry-Autotools_delete 2016-04-04 20:52:49 -05:00
onvif ONVIF: Fix probe type header and add To header 2016-04-09 17:02:36 +01:00
scripts Merge pull request #1428 from ZoneMinder/better_zmvideo 2016-04-28 22:00:52 +10:00
src fix tabs/shiftwidth 2016-04-29 09:01:28 -04:00
umutils Migrate svn to git 2013-03-17 00:45:21 +01:00
utils fix distro dirs, because the cmake versions have been renamed to not have cmake in them 2016-04-06 12:27:24 -04:00
web Merge branch 'master' into storageareas 2016-04-29 08:28:53 -04:00
.gitignore Remove eyezm from distros and Cmake. 2016-02-26 22:41:27 +11:00
.gitmodules Use the 3.0 branch of crud, compatible with cakephp 2.x 2015-09-29 17:22:43 -06:00
.travis.yml use --filter instead of -f because -f is ambiguous 2016-04-20 14:21:37 -04:00
AUTHORS Updated AUTHORS to reflect recent changes to the project 2013-09-09 10:06:36 -04:00
BUGS Point to the GitHub issues page for the list of current bugs 2013-09-09 09:45:29 -04:00
CHANGELOG.md codespell: misc. spelling corrections 2016-02-08 20:41:36 +11:00
CMakeLists.txt Merge branch 'master' into feature-h264-videostorage 2016-04-06 11:55:20 -04:00
CONTRIBUTING.md Create CONTRIBUTING.md 2015-09-21 08:52:32 -05:00
COPYING Migrate svn to git 2013-03-17 00:45:21 +01:00
ChangeLog Pointed the ChangeLog to the commits url 2013-09-05 11:32:48 -04:00
Dockerfile codespell: misc. spelling corrections 2016-02-08 20:41:36 +11:00
INSTALL codespell: misc. spelling corrections 2016-02-08 20:41:36 +11:00
LICENSE Copied COPYING to LICENSE 2013-04-12 19:11:17 -04:00
NEWS Migrate svn to git 2013-03-17 00:45:21 +01:00
README.md put back some text 2016-04-06 10:50:33 -04:00
TODO update link to README to be README.md 2013-09-06 14:35:08 -04:00
cmakecacheimport.sh Remove importing of binary directory in cmakecacheimport.sh 2013-11-15 10:44:31 +02:00
description-pak Doing my best to manually remove nextime's plugin architecture while keeping his other changes. 2013-08-13 09:43:23 -04:00
version Merge branch 'master' into icon_video 2016-04-11 09:31:51 -04:00
zm.conf.in add comment/warning for ZM_SERVER_HOST 2016-03-01 08:43:36 -06:00
zmconfgen.pl.in Migrate svn to git 2013-03-17 00:45:21 +01:00
zmlinkcontent.sh.in Modified zmlinkconent.sh.in to chown and chmod content folder. Fixes #463 2014-07-09 00:59:38 +10:00
zoneminder-config.cmake Merge branch 'master' into feature-h264-videostorage 2015-06-10 23:09:30 +10:00

README.md

ZoneMinder H264 Patch

Build Status Bountysource

##Feature-h264-videostorage Branch Details This branch supports direct recording of h264 cameras into MP4 format uisng the h264 Passthrough option, but only with FFMPEG Monitors currently. It also provides h264 encoding for any other monitor type. If you encounter any issues, please open an issue on GitHub and attach it to the h264 milestone. But do remember this is bleeding edge so it will have problems. Thanks to @chriswiggins and @mastertheknife for their work, @SteveGilvarry is now maintaining this branch and welcomes any assistance.

The following SQL changes are required, these will be merged to zmupdate once we are ready to merge this branch to master.

ALTER TABLE `Monitors` ADD `SaveJPEGs` TINYINT NOT NULL DEFAULT '3' AFTER `Deinterlacing` ,
ADD `VideoWriter` TINYINT NOT NULL DEFAULT '0' AFTER `SaveJPEGs` ,
ADD `EncoderParameters` TEXT NOT NULL AFTER `VideoWriter` ;

ALTER TABLE `Events` ADD `DefaultVideo` VARCHAR( 64 ) NOT NULL AFTER `AlarmFrames` ;

All documentation for ZoneMinder is now online at https://zoneminder.readthedocs.org

Overview

ZoneMinder is an integrated set of applications which provide a complete surveillance solution allowing capture, analysis, recording and monitoring of any CCTV or security cameras attached to a Linux based machine. It is designed to run on distributions which support the Video For Linux (V4L) interface and has been tested with video cameras attached to BTTV cards, various USB cameras and also supports most IP network cameras.

Contacting the Development Team

Before creating an issue in our github forum, please read our posting rules: https://github.com/ZoneMinder/ZoneMinder/wiki/Github-Posting-Rules

Installation Methods

Building from Source is Discouraged

Historically, installing ZoneMinder onto your system required building from source code by issuing the traditional configure, make, make install commands. To get ZoneMinder to build, all of its dependencies had to be determined and installed beforehand. Init and logrotate scripts had to be manually copied into place following the build. Optional packages such as jscalendar and Cambozola had to be manually installed. Uninstalls could leave stale files around, which could cause problems during an upgrade. Speaking of upgrades, when it comes time to upgrade all these manual steps must be repeated again.

Better methods exist today that do much of this for you. The current development team, along with other volunteers, have taken great strides in providing the resources necessary to avoid building from source.

Install from a Package Repository

This is the recommended method to install ZoneMinder onto your system. ZoneMinder packages are maintained for the following distros:

If a repository that hosts ZoneMinder packages is not available for your distro, then you are encouraged to build your own package, rather than build from source. While each distro is different in ways that set it apart from all the others, they are often similar enough to allow you to adapt another distro's package building instructions to your own.

Building a ZoneMinder Package

Building ZoneMinder into a package is not any harder than building from source. As a matter of fact, if you have successfully built ZoneMinder from source in the past, then you may find these steps to be easier.

When building a package, it is best to do this work in a separate environment, dedicated to development purposes. This could be as simple as creating a virtual machine, using Docker, or using mock. All it takes is one “Oops” to regret doing this work on your production server.

Lastly, if you desire to build a development snapshot from the master branch, it is recommended you first build your package using an official release of ZoneMinder. This will help identify whether any problems you may encounter are caused by the build process or is a new issue in the master branch.

Please visit our ReadtheDocs site for distro specific instructions.

Package Maintainers

Many of the ZoneMinder configration variable default values are not configurable at build time through autotools or cmake. A new tool called zmeditconfigdata.sh has been added to allow package maintainers to manipulate any variable stored in ConfigData.pm without patching the source.

For example, let's say I have created a new ZoneMinder package that contains the cambolzola javascript file. However, by default cambozola support is turned off. To fix that, add this to the pacakging script:

./utils/zmeditconfigdata.sh ZM_OPT_CAMBOZOLA yes

Note that zmeditconfigdata.sh is intended to be called, from the root build folder, prior to running cmake or configure.

Docker

Docker is a system to run applications inside isolated containers. ZoneMinder, and the ZM webserver, will run using the Dockerfile contained in this repository. However, there is still work needed to ensure that the main ZM features work properly and are documented.

Contribution Model and Development

Pull requests are very welcome! If you would like to contribute, please follow the following steps.

  1. Fork the repo
  2. Open an issue at our GitHub Issues Tracker. Describe the bug that you've found, or the feature which you're asking for. Jot down the issue number (e.g. 456)
  3. Create your feature branch (git checkout -b 456-my-new-feature)
  4. Commit your changes (git commit -am 'Added some feature') It is preferred that you 'commit early and often' instead of bunching all changes into a single commit.
  5. Push your branch to your fork on github (git push origin 456-my-new-feature)
  6. Create new Pull Request
  7. The team will then review, discuss and hopefully merge your changes.

Analytics