본문 바로가기

예전글 목록

ZoneMinder (Linux기반의 Open CCTV Solution)


이번에 간단한(or 복잡한) 프로젝트를 하나 진행하게 되었다. 물론 현재 대학원에서 연구 차원에서 진행하는 프로젝트...쩝
기능중에 CCTV와 유사한 모니터링의 기능이 필요하게 되어서 참고할 만한것을 찾다가 역시.. Linux 기반의 ZoneMinder를 찾게 되었다.

ZoneMinder: http://www.zoneminder.com (The all-in-one Linux GPL'd security camera solution)

기능은 다음과 같다.

  • Runs on any Linux distribution! 
  • Supports video, USB and network cameras. 
  • Support Pan/Tilt/Zoom cameras, extensible to add new control protocols. 
  • Built on standard tools, C++, perl and php. 
  • Uses high performance MySQL database. 
  • High performance independent video capture and analysis daemons allowing high failure redundancy. 
  • Multiple Zones (Regions Of Interest) can be defined per camera. Each can have a different sensitivity or be ignored altogether. 
  • Large number of configuration options allowing maximum performance on any hardware. 
  • User friendly web interface allowing full control of system or cameras as well as live views and event replays. 
  • Supports live video in mpeg video, multi-part jpeg and stills formats. 
  • Supports event replay in mpeg video, multi-part jpeg, stills formats, along with statistics detail. 
  • User defined filters allowing selection of any number of events by combination of characteristics in any order. 
  • Event notification by email or SMS including attached still images or video of specific events by filter. 
  • Automatic uploading of matching events to external FTP storage for archiving and data security. 
  • Includes bi-directional X.10 (home automation protocol) integration allowing X.10 signals to control when video is captured and for motion detection to trigger X.10 devices. 
  • Highly partitioned design allow other hardware interfacing protocols to be added easily for support of alarm panels etc. 
  • Multiple users and user access levels 
  • Multi-language support with many languages already included 
  • Full control script support allowing most tasks to be automated or added to other applications. 
  • Support external triggering by 3rd party applications or equipment. 
  • xHTML mobile/cellular phone access allowing access to common functions.


ZoneMinder의 요구사항은 다음과 같다.

  • Pentium II PC should be able to track one camera per device at up to 25 frames per second
  • MySQL
  • PHP Package for WEB Based Service.
  • JPEGs so you'll need at least libjpeg.a
  • MPEG videos if necessary, for this you'll need either ffmpeg (recommended)

참고로 자세한 H/W 리스트는: http://www.zoneminder.com/wiki/index.php/Supported_hardware
아마 각 배포판마다. ZoneMinder패키지가 적용된것도 있을 듯.. 찾기 귀차니즘. ㅎ (하지만 곧 찾아야 될듯...)


ZoneMinder is not a single monolithic application but is formed from several components.
소스의 구조는 각각의 컴포넌트 형태를 뛰고 있다.
간단히 보면. 아직 소스구조는 확인하지 못함. 귀차니즘..

zmc: This is the ZoneMinder Capture daemon. This binary's job is to sit on a video device and suck frames off it as fast as possible, this should run at more or less constant speed.
 
zma: This is the ZoneMinder Analysis daemon. This is the component that goes through the captured frames and checks them for motion which might generate an alarm or event. It generally keeps up with the Capture daemon but if very busy may skip some frames to prevent it falling behind.
 
zmf: 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 daemon to do more analysis (!) and so keep up with the Capture daemon better. If it isn’t running or dies then the Analysis daemon just writes them itself.
 
zms: This is the ZoneMinder Streaming server. The web interface connects with this to get real-time or historical streamed images. It runs only when a live monitor stream or event stream is actually being viewed and dies when the event finishes or the associate web page is closed. If you find you have several zms processes running when nothing is being viewed then it is likely you need a patch for apache (see the Troubleshooting section). A non-parsed header version of zms, called nph-zms, is also installed and may be used instead depending on your web server configuration.
 
zmu: This is the ZoneMinder Utility. It's basically a handy command line interface to several useful functions. It’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.
 
zmfix: 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.


스크린 샷... (홈페이지에 있는 거임..)





기능이 참 많은게 아주 고맙다. 잘 분석해 보아야 겠다... 언제나 오픈소스에 감사를...