← Back to articles

Server and client settings: the difference

While installing Xeoma video surveillance software requires just a single file, internally it’s divided into 2 parts: server and client. In short, the server does all the heavy lifting (getting video from cameras, applying various detectors and filters to it, managing archives), while the client fetches and displays the results of the server’s work. These parts can be used within a single machine or separated between multiple devices.
Both of them can be fine-tuned to give you the best possible experience. However, when accessing Xeoma via the interface you may find it difficult to tell whether one particular parameter is related to the server or to the client. This guide will help you get a better idea of how that division works and which side to scrutinize during troubleshooting.

Server

The vast majority of various settings you can find in Xeoma are managed and stored by the server.

  1. Modules – each and every module’s settings are handled by the server. When connecting with a client, you can see and change these settings but none of that info remains on the client.
  2. User access permissions – much like with modules, Main menu → Remote access → Users allows you to see and change user rights (provided you have the admin’s password), but all of this data is handled by the server, not the client.
  3. Time zones – the same menu allows you to set a time zone for Xeoma; this particular part of the menu is relevant only for the server. However, this isn’t the only part where time zones themselves are relevant, we’ll get back to that topic when discussing the client’s settings.
  4. Licenses – only the server part of Xeoma handles activation for various licenses; you can perform the activation while connected to the server with a client, but the process is still fully handled by the server.
  5. Repeater – while its purpose is to allow a client to connect to the server from an external network, all of Repeater’s settings (including activation) are applied only to the server.
  6. Installation (autostart) – almost all types of installation are applied only to the server; the only exception to this rule is Autorun the client option.
  7. Archive – both video footage and metadata for it are handled only by the server.
  8. Cloud service (1-click) – it allows you to use a PC as an intermediary between Xeoma Cloud and the cameras; only a server can be such an intermediary.
  9. Video decoding – this is a somewhat trickier subject, since it can be handled by both server and client, so we’ll devote a separate section to it.
  10. Buffering – if Buffered video stream reading box is checked in the Universal camera settings, the server will buffer the video coming from the cameras for smoother playback.
  11. Camera groups – since groups like this are defined by the settings of specific modules (Universal camera and Preview and Archive), they too are managed by the server.
  12. eMap – both the map itself and the order of cameras on it are kept by the server; however, the client can be used to upload a new map on the server or to change an existing one.
  13. Screenshots – the command to create a screenshot is issued by the client (when the corresponding button is pressed), however, the resulting file can be stored on either side; the process for creating a screenshot is fully handled by the server.
  14. PTZ – similarly to screenshots, all PTZ-related commands come from the client, but the server communicates with the cameras directly and keeps the PTZ settings (e.g. presets and tours).

Client

Most settings that deal with visual effects on screen are handled and stored by the client.

  1. Layouts menu – almost all parts of this menu (pages, visualization, window customization, etc.) are defined by the client*; exceptions to this rule are ONVIF camera time synchronization and eMap – the server handles those.
  2. Multi-server mode – all information regarding groups of servers (their addresses and passwords) is managed by the client.
  3. Language – interface languages are relevant only for the client, since the server works fully in the background.
  4. Video decoding – see separate section.
  5. Buffering – if Enable buffering on the client side box is checked in Layouts menu → Client decoding settings, the client will buffer the video coming from the server for smoother playback.
  6. Time zones – when a client connects to the server, it checks the system time zone for the client PC and compares it to the server’s. If they are different, the client adjusts the time line when accessing the archive, so that time markers follow the client’s time zone.
  7. Heatmaps – created heatmaps are stored by the client.


*This is the point where it’s relatively easy to make the wrong assumption when setting up the server: the order of cameras on screen and pages with cameras are all, by default, unique for each client device. Thus, if your machine has GUI and you run both the server and the client on it, set up the right order of cameras and pages and then connect from a client on a different device – that device will not show you the order you originally set up on the server. However, it’s possible to force the server to handle those settings as well.

Decoding

Decoding refers to decompression of compressed video so that it can be viewed. Xeoma allows the decoding to be handled by both server and client, although they approach it slightly differently. The system is quite flexible, so it includes multiple parameters and their combinations.

  • If all the decoding is to be handled by the client, the server can be set up like this: Main menu → Remote access → Users, Forced video decoding on the client (for all users) box is checked. This way the server instructs all connecting clients to handle the decoding.
  • If certain users need the server to do the decoding, the same menu has the box Allow video decoding on the server (for the current user). This way the server will decode the video for users with this option enabled, and instruct the rest to decode on the client’s side.
  • In Layouts menu → Client decoding settings Video decoding on the client side for live preview and Video decoding on the client side for archive view drop-down menus allow the client to instruct the server about which side should do the decoding (Auto detection prioritizes decoding by the client but shifts the decoding to the server’s side if the client is unable to handle it on its own). These settings are unique for each individual client.
  • Additionally, Xeoma allows to use hardware acceleration of decoding, which can be applied to both server and client.

It is also worth noting that the server needs to decode the video if any detectors are applied to it, thus, even if decoding is set on the client’s side, the server will still perform its own decoding as well.

April, 29 2021

Read also:
Xeoma’s client-server architecture
New Raspberry Pi 4 board