C++ Library to read Multiple IP cameras simultaneously

asked 2014-07-24 02:44:03 -0600

yohanrw gravatar image

updated 2014-07-24 02:48:26 -0600

I am wondering if there is any C++ library for reading multiple IP cameras and do the simplest motion detection. I of course know OpenCV can do this but it is kind of heavy when it comes to multiple cameras. My target is 20 IP cameras. I have seen commercial applications doing this task, so I know this is somehow possible for sure. Below are some commercial applications which can do motion detection on multiple IP cams.

  1. http://www.deskshare.com/video-surveillance-software.aspx
  2. http://sourceforge.net/projects/surveillance/
  3. http://www.nchsoftware.com/surveillance/
  4. http://download.cnet.com/Camera-Viewer-Pro/3000-2348_4-75123285.html

I am seeking for a C++ library because I need to run trigger some OpenCV code on motion detection.

Any ideas please?

edit retag flag offensive close merge delete

Comments

Basically they all programmed it from scratch to get efficiency! That your only goal here :) You should split up your algorithm into basic blocks and find the most efficient implementation for each part. Things you will have to look into are:

 1. Efficient background subtraction
 2. Efficiently performing AND operations
 3. Make a multithreaded interface with a thread for each CAM and a main thread which combines all previous data.

This will be the only way to achieve a robust system with that many camera's. Getting your camera's synchronized however will be another great challenge but it gets out of scope of this forum.

StevenPuttemans gravatar imageStevenPuttemans ( 2014-07-24 02:54:17 -0600 )edit
1

@StevenPuttemans: Thanks for the reply. You mean use OpenCV, but use it efficiently with best ways and our own tricks?

yohanrw gravatar imageyohanrw ( 2014-07-24 03:03:40 -0600 )edit

@StevenPuttemans: oh, and another thing, SimpleCV can do this, but it is in Python :(

yohanrw gravatar imageyohanrw ( 2014-07-24 03:05:04 -0600 )edit

Yes or try to manually implement techniques that show better results than OpenCV. For example OpenSURF gets way better results than the straightforward OpenCV SURF implementation and it is faster in processing.

StevenPuttemans gravatar imageStevenPuttemans ( 2014-07-24 09:26:33 -0600 )edit