Video Server Zextras

Have a Question?

The Zextras Video Server is a WebRTC stream aggregator that boosts Team performance by integrating and decoding/re-encoding all Meeting streams.

While the default WebRTC produces one incoming and one outgoing stream for each meeting participant, the Zextras Video Server simply creates one aggregated inbound and one aggregated outbound stream for each client. This is true for both video and audio.

The Video Server employs conservative codecs (VP8 and Opus) by default to guarantee maximum compatibility, but other codecs can be enabled. It also divides the Webcam and Screen Sharing streams and allots the same bandwidth to each.

A correctly configured Video Server will eliminate the requirement for a TURN server, as long as all clients can access the Video Server’s public IP address and UDP traffic is not censored.

The Zextras Video Server must be deployed on a dedicated server and meets the following specifications:

Configuration of the Client

There is no requirement for client configuration because the Team Zimlet will detect whether a video server is configured and use it if one is available.

  • Download the installation package for the Linux distribution that Zextras Suite is installed on (RHEL 7 and CentOS 7 RHEL 8 and CentOS 8 Ubuntu 18.04).
  • Install the installation package on the server.
  • Unpack the installation package, replacing [OS] with the appropriate text in the example below: r7, r8, or u18:
  • Navigate to the unpacked directory: videoserver-installer cd
  • ./install.sh is the installation script to run.
  • This script will install Zextras Video Server as well as all of its runtime requirements on the current system.
  • Would you prefer to proceed whilst the system is being modified? [Y]
  • The installer will first check for required dependencies and, if any are missing, will install them. A notification such as “Press Y to install them”
  • You will then be requested to install the following Video Server packages:
  • Press Y once again to install them.
  • Once all packages have been installed, you will be prompted for the video server’s public IP address.
  • This is the only setup needed. The installer will configure the Video Server and then return two commands that must be performed on any Mailbox Server in the infrastructure to connect to the Video Server and enable it for all servers:
  • Copy and run these, and see ZxTeam CLI Commands for more information on the syntax and other arguments if you wish to modify them.
Architecture and Service Management

A Team meeting is hosted on a single mailbox, which also maintains track of the meeting’s status. It is the mailbox’s role to communicate with a videoserver instance in order to start and control a meeting.

As a result, each mailbox has its own connection pool that can be managed using the ZxTeam CLI commands. The instructions for controlling the service are simple:

  • Begin the connection pool by typing:
  • Close the connection pool:
  • Check the status of a connection pool. This command returns information about the node that is running it.
This command’s output includes the following information:

If the remote Video Server is unavailable or unavailable, the status will be down rather than online.

If the last connection attempt to the videoserver failed, an error message (e.g., Unauthorised request (wrong or missing secret/token) or a generic Runtime Exception) is shown. When the connection is successful, the message is cleared.

The number of meetings hosted on the current mailbox is reported by local_meetings_hosted.
Scaling Video Servers
Multiple videoservers can be run on the same infrastructure starting with Zextras Suite 3.1.8 (Video Server package version 0.10.5).

To add a new Video Server to the configuration, run the Video Server installer on a new server and follow the instructions – once packages are installed, the installer will provide the required commands (zxsuite team video-server add with the appropriate parameters) to add the server to the infrastructure.

To remove a Video Server from the configuration, use the zxsuite team video-server remove command from any mailbox server; this will delete the relevant entries from the Zextras Config (manual package removal on the video server is necessary).
Commands in the CLI
To manage Video Server installations, use the CLI command zxsuite team with the parameter video-server and the parameters video-server add and video-server delete.

Codecs and Bandwidth
Bandwidth for video
The administrator can configure the camera and screenshare broadcast quality by specifying the relative bitrate in Kbps. The values must be at least 100 Kbps and can be raised to meet your needs.

Higher numbers indicate higher quality but higher bandwidth use.

The command for the webcam broadcast quality/bandwidth is zxsuite config global set attribute teamChatWebcamBitrateCap value 200.

The command for the screenshare stream qualitybandwidth is zxsuite config global set attribute teamChatScreenBitrateCap value 200.

Codecs for Video
The VP8 video codec is utilised by default. This is to provide maximum compatibility, as this codec is supported by all browsers, but other codecs can be enabled:

  • AV1: In zxsuite configuration, set the global attribute teamChatVideoCodecAV1 to true.
  • H264: In zxsuite configuration, set the global attribute teamChatVideoCodecH264 to true.
  • H265: In zxsuite configuration, set the global attribute teamChatVideoCodecH265 to true.
  • VP8: in zxsuite configuration, set the global attribute teamChatVideoCodecVP8 to true.
  • VP9: in zxsuite configuration, set the global attribute teamChatVideoCodecVP9 to true.
Because only one codec may be activated at a time, remember to disable the previous one first by using the same command as in the list above but swapping value true for value false.

To activate the H264 codec, for example, run:
Codec Audio
Opus is the audio codec used by the Zextras Video Server. Opus is presently the only reliable codec accessible across all supported browsers, hence no additional codecs are supported.

Advanced options
The audio experience is influenced by the following parameters.

Sound Quality
The administrator can configure the Opus audio quality by changing the sampling rate (in Hz) in the global parameter teamChatAudioSamplingRate.

The following values are available:
  • The narrowband bandwidth is represented by the number 8000.
  • The mediumband bandwidth is represented by 12000.
  • The wideband bandwidth (default) is represented by 16000.
  • The superwideband bandwidth is 24000.
  • The fullband bandwidth is represented by 48000.
Sensitivity to sound
The administrator can adjust the audio sensitivity using the following two commands:
The audio level sensitivity specifies how much the audio should be normalised across all sources. The number ranges from 0 to 100, with 0 representing muffled audio and 100 being the maximum audio volume (extremely loud).

The number is set to 55 by default, which is also the value recommended for best performance.

The interval in seconds utilised to determine the audio sensitivity level is defined by the audio sampling sensitivity interval. The value is set to 2 seconds by default, which indicates that the video server normalises the audio level based on the last 2 seconds of audio sources.
The value must be at least 0, but it should be set to 10 seconds for the optimum results.