Homes with Xeoma (Video Surveillance and VMWARE ESXi)

    Video surveillance / video recording systems are now very popular. And although there are a lot of them on the market , the desire to save money, especially for use at home or in the SOHO sector, often leads to the torment of choice.


    In particular, I had the following conditions for a home NVR:


    1. Linux NVR server part in VMWare ESXi virtual machine;
    2. low demands on virtual machine resources when connecting 6-8 FullHD H.264 cameras;
    3. the ability to connect and manage the NVR server from a Windows computer and smartphone (Android);
    4. low cost (better for free);

    1. NVR with the ability to run the server side in a Linux environment


    • ZoneMinder
      Free, OpenSource
    • Veyesys Rapidvms
      Free, OpenSource
    • Xeoma
      up to 8 cameras for free (it is impossible to use the free version in Linux without a graphical environment)
      license cost for 1 camera 875 rubles
    • AVReg (www.avreg.net)
      up to 4 cameras for free
      license cost for 1 camera 1000 rubles
    • Line (www.devline.ru) the
      cost of a license for 1 camera 1008 rubles
    • Trassir (www.dssl.ru)
      license cost for 1 camera 2990 rubles
    • Orchid Core VMS
      up to 4 cameras for free
    • Ivideon
      up to 15 cameras, it is
      not possible to install an ivideon server without a graphical environment

    2. ZoneMinder


    The first CCTV system that worked for a little over a year and was the first experience using CCTV systems was ZoneMinder. Honestly, ZoneMinder is quite complicated to install and configure, but even this has not become the main problem in its use. The main problem appeared when I began to slowly replace the old MJPEG cameras with H.264 cameras. I don’t know how it is now, but the version with which I worked several years ago (1.28) did not support H.264 streams “out of the box”, and what it turned out to be done by connecting ffmpeg, although it worked, it loaded the processor quite a lot, and the quality of motion detection left much to be desired. It simply turned out either to record video from cameras almost continuously, or when "detecting" motion was rougher, it was necessary to put up with the omission of "important" frames. In addition, apparently due to the frantic load on the processor, ffmpeg processes decoding H.264 fell and often there was no recording at all. Had to look for something else.


    3. AVReg


    In general, I moved to AVReg. Installing AVReg is easier, but still far from trivial. AVReg worked in free mode, therefore, out of 6 installed cameras, recording was made only from 4, but video recording was already stable. AVreg is more stable than ZoneMinder, video streams do not "fall off". However, the complexity and nontriviality of the settings and the "clumsy" interface were a little annoying. The quality of motion detection also left much to be desired. AVReg recorded a lot, the search in the archive of the necessary events is inconvenient. Ultimately, as it seems to me now, the price of a license of 1000 rubles per camera for this project is greatly overstated. Adequate price tag for AVReg 400 rubles per channel, no more.


    In general, when working with the above projects, a lot of time was spent and what turned out in the end did not cause delight. From time to time, turning to Google for advice on what else is good about NVR for Linux, I came to the conclusion that a small fee for high-quality software for organizing a video surveillance system is not such a bad idea.


    4. Xeoma


    The first thing that fell into view was XEOMA .
    I must say that the gaze fell successfully, because, as it turned out, the specified software for NVR possessed everything that I needed to organize home video surveillance:


    • The system can work in Linux OS (as well as in Windows, MacOS, Android, iOS and ARM)
    • The server part can be launched separately from the client part (in fact, in addition to the free version, which has restrictions on connecting to the server via the network) in the bare console.
    • The client interface can connect to the server from any OS (Linux, Windows, MacOS, Android, iOS and ARM)
    • Support for a huge number of cameras.
    • Easy installation and setup.
    • PTZ control.
    • High quality motion detector.
    • You can enable and use the web interface to access the system.
    • A large number and high quality video stream processing modules.

    4.1. Install XEOMA in a CentOS Linux virtual machine


    As I already wrote, one of the key conditions for using NVR is the ability to run it in a virtual environment (VMWare ESXi 6.5 on an i5-3570 @ 3.40Ghz / RAM 32Gb machine), and of course it is very desirable to minimize the resources consumed by the system.


    In this regard, for starters, a VM with CentOS 7.3 was created, to which fairly modest resources were allocated:


    • CPU: 1 core
    • RAM: 2Gb
    • HDD1: 20 Gb (system)
    • HDD2: 200 Gb (video archive)

    4.2. Launching the Xeoma CCTV Console Server


    The XEOMA server is not just launched, but extremely simple. Honestly, I was very surprised by the process of installing and starting the system on Linux, especially after the ordeals with ZoneMinder and AVReg.
    Everything is simple here:


    • Install Linux in the minimum version;
    • we pump out the necessary version of Xeoma (links here: http://felenasoft.com/xeoma/ru/download/ )
      wget http://felenasoft.com/xeoma/downloads/xeoma_trial_standard_linux64.tgz
    • unpack the downloaded archive;
      tar xzf xeoma_trial_standard_linux64.tgz
    • If necessary, set attributes for the application that allow its launch
      chmod u + x xeoma_trial_standard.app
    • We find out the administrator password to connect to the server, for example, from a Windows workstation;
      ./xeoma_trial_standard.app -showpassword
    • we launch Xeoma in server mode (for now for verification in interactive mode):
      ./xeoma_trial_standard.app -core
    • setting up Xeoma autostart and running the server part as a Linux service (daemon) is also surprisingly simple; instead of the previous command, you need to do the following:
      ./xeoma_trial_standard.app -install -hiddenmode

    4.3. Launching the XEOMA Client Application


    On a workstation (running, for example, already under Windows), you also need to download the XEOMA software module from the download page above and run it with the command:


    xeoma_trial_standard_win64.exe -client

    A program running in client mode will itself detect the xeoma server, connect to it (if it is on the same subnet), offer the choice of automatic network scanning or manual input of cameras. You can also manually enter the Xeoma server address using the Remote Access> Connect to Remote Server menu:


    Xeoma remote access menu


    Here we enter the IP address and access password obtained earlier (see section 4.2.):


    Xeoma remote access dialog


    As a result, we get approximately the following picture:


    Xeoma client


    The actual configuration of Xeoma is as simple and intuitive as installing this system. Complete guidance is provided on the manufacturer’s website.


    4.4. Virtual machine resource consumption


    Honestly, considering that Xeoma independently performs motion detection on the basis of which it records the video stream, I had doubts about the adequacy of the 1st core for a virtual machine running Xeoma-server. However, the loading of a single core with the included motion detection of 6 cameras was about 30-40% and remained within the indicated limits even with activity on all cameras. In the absence of movement, loading dropped below 20%:


    CPU LOAD


    The average HDD Latency at maximum load is 35-50ms, which is quite a lot, but such a delay corresponds to the simultaneous recording of a video stream from 5-6 cameras. Such a load happens infrequently, but still it’s worthwhile to select a separate disk for recording video streams, connecting it as an RDM disk :


    HDD Latency


    The allocated disk space of 200 GB was enough to store video data from 6 HD cameras for 2 weeks:


    Xeoma Archive


    4.5. Optimize Xeoma Settings


    4.5.1. Motion Detector

    In general, the default settings for detecting and archiving data offered by Xeoma work fine by default without any changes, however, given the limitations of the resources of a virtual machine with an Xeoma server, and the lack of the need to store redundant information, I recommend that you immediately make small changes to the configuration of the detector module movement ":


    Xeoma Motion Detection


    We change the threshold of sensitivity. It is necessary to observe a little the readings of the current sensitivity level at various changes in the video frame and decide on the minimum sensitivity threshold. I am satisfied with a value of 10, in which the detector does not miss any movement in the camera. The value of 5, set by default, actually captures the "noise" of the cameras and minor changes in illumination, leading to a large amount of recording in the video archive.
    Change the detection area . With the help of the brush and the “erase” mode, we remove unnecessary areas in which we are not interested in fixing movement.
    Change the minimum size of the object. More precisely, a little increase. The default size of the object is very small, which also leads to an erroneous operation of the detector and excessive recording of frames that do not contain anything useful.


    4.5.2. View and archive

    The settings for the "View and Archive" module may also be worth a little adjustment. My settings for example look like this:


    Xeoma Archive


    Prerecord I set 5 seconds, which ensures that due to buffering video streams, information will be recorded in the video archive, not only from the beginning of motion detection, but also five seconds before it.
    The storage time of this archive. Considering that the total available disk space allocated for the video archive is 200 GB, 2 weeks turned out to be the optimal storage depth.


    4.5.3. Decoding Settings

    To reduce the load on the server, when connecting clients to it, it is recommended to decode the video streams on the clients. To do this, set the decoding settings as shown in the following figure:


    Xeoma decode properties


    4.6. Limitations of Using Virtualization


    Xeoma works in a virtual environment, the manufacturer has established restrictions that may be critical for someone. In particular, the following is written in the complete system manual:


    For Xeoma (Xeoma Standard), Xeoma Pro licenses, the transition from Xeoma Standard to Xeoma Pro and renewals, the ability to activate on any virtual machines is added. To do this, you need constant access to the Internet in a virtual machine. If the Internet fails, the license may be deactivated, but will be restored when the Internet connection is resumed.

    It works as follows: If the Internet disappears, the Xeoma server in the virtual machine for 2 days continues to work as if nothing had happened, writes archives, allows the client to connect, but it all works until the server is restarted.


    If upon restarting the server cannot contact the Internet for license activation, then the productive work of the server will be stopped, i.e. no data will be received from the cameras, the archive will stop recording. When you try to start the client, you will see the following warning:


    Xeoma deactivated


    Now until you have Internet Xeomu you can use only to view the archive. To do this, click the "Continue to work" button.


    However, after resuming access to the Internet, one trouble awaits you (at least in the latest version 11.17.24). Despite the fact that with the resumption of access to the Internet, Xeoma’s functionality will work in full, when viewing information about your active license (Menu> Information> Active Licenses), you will see the following:


    Xeoma No Licenses


    Waiting for a day with a little did not fix the situation, so I had to re-enter the license activation code manually.


    Given the not entirely clear logic of Xeoma running in a virtual machine, I can recommend protecting yourself from resetting the settings you made earlier by saving them in one of two ways:


    • Using the menu in the Xeoma client GUI: Menu> Install> Restore> Save settings (or Export settings).
    • Make a copy using the Linux settings file /usr/local/Xeoma/settings.dat

    conclusions


    Xeoma is a very good video recording system. She is definitely worth her money. This, as mentioned above, is 875 rubles per 1 camera using a standard license. For 6 cameras, its use will cost about 5000 rubles. Considering how much time you will spend on achieving acceptable work of free solutions, this is certainly a low price.


    I want to note the excellent motion detection system, which allows you to save and quickly find all significant events without exception that fall under your cameras, without fear of missing something. Due to this, for a two-week recording with 6 FullHD cameras, it is enough to allocate only 200 GB of disk space, while in many inexpensive recorders (for example, based on CMS), in order not to miss events, you have to enable continuous recording, which is for the same two-week archive depths will require about 2Tb.


    Also popular now: