Recently I've been looking to install some IP cameras in my house for protection. I didn't wanna spend much on it so I bought 3 of the cheapest Chinese IP cameras worth 30$ each.

They are ONVIF cameras so I thought it would be very easy to install and operate. In the past, I was using my old smartphone with an app called IP Webcam for Android to monitor the house, and had connected it to iSpy on the computer. So, I wanted to have a similar setup with my new cameras.


The cameras I bought
The cameras I bought


Turns out, the only software that they were able to work with was the vendor's bad Android App (called 360Eye). There was nothing on the computer that I could run to monitor them because I didn't know the full URL they used to communicate with everything. 

I was downloading every program I could in order to find a way to use my existing setup with the cameras but none of them worked except Xeoma by Felenasoft. When I ran the free trial they offer, it automatically found all 3 of my home cameras and I was able to see the rtsp link and port they were streaming to (If you're wondering, it was rtsp:// for the first camera).


Interface of Xeoma 16.12.26 with 3 cameras connected
Interface of Xeoma 16.12.26 with 3 cameras connected


I was ready to go back to iSpy but I started checking out Xeoma's features. Slick design, cross-platform apps (Windows, Linux, Mac, Android, iOS, ARM), and a very straightforward interface for camera detection actions they called modules. Each module does or checks a different thing and there are plenty of them to add. For example you can add a Motion detector module to an Archiving module and then to an Email module. Then, if Xeoma detects motion it will start recording and send you an email to alert you with pictures and/or video.


Example of modules
Example of modules


The motion detector has the most advanced features of any program I have tested. You can draw the areas in which you want motion detection to work, you can set the minimum and maximum size of the objects you want to track and set the minimum time in between motion detections.


Motion detector module settings
Motion detector module settings



You can really do ALOT of things with the modules they provide if you have the time, there are even conditional modules, face recognition modules, smoke detectors(!), and abandoned object detectors(!).

Here is the full list of modules they provide in version 16.12.26 that I'm using: 

  • Automatic number plate recognition (ANPR)
  • Fisheye cameras image dewarping
  • Multilayered eMap
  • Face detector
  • Object detector
  • Detector of abandoned objects to detect unattended items
  • Smoke detector
  • Synchronization with camera’s SD card
  • Synchronization with cashier registers (POS)
  • Heat map
  • LDAP active directory synchronization
  • HTTP request sender and HTTP switcher modules
  • Privacy masking
  • Visitors counter
  • Cross-line Detector
  • PTZ tracking
  • Sabotage detector
  • PTZ control also in browsers
  • Search in archive footage for motion events by time or in selected areas
  • RTSP and HTTP broadcasting


It's also the most lightweight video surveillance program I tested. With 3 cameras running, all of them using motion detectors and video archiving, it was using an average of 11% CPU on a 6 year old Intel i-5 2300 @ 2.80 Ghz and around 80MBs of RAM.

CPU and RAM usage (Intel i-5 2300)
CPU and RAM usage (Intel i-5 2300)


On a side note, when I was using iSpy the video was sometimes getting disconnected for about 20-30 seconds at random times because my cameras are wireless and one of them doesn't have very strong signal. Xeoma doesn't give me any trouble with it. When the camera disconnects, it only lags for 1-2 seconds and then it's back on.

Xeoma is, in my opinion, the best video surveillance software in the market right now followed by iSpy.

If there is another lesson to be learnt here: Don't buy the cheapest Chinese IP cameras...