# Video conferencing/Testing

Testing is required for defining the number of parallel users that can be served with video conferencing services.
* BigBlueButton Bandwidth Requirements show the basic underlying concept.
* Also the performance of the server might be different, if the server runs "bare metal" or as a virtual server on a cluster.

## Learning Task

* (Stress Test) Design a stress test for your Video Conferencing Server.
* (Meeting Booking System) Define the requirements and constraints of a meeting booking system, that takes care, that maximum of parallel videoconferences are not exceeding the capacity of the Video Conferencing Server. How does the analysis of Bandwidth Requirements of an Open Source Videoconferencing system has an impact on the booking management.

## Prerequisites

* You have already set up a Big Blue Button Server.
* You have a group of people, employees, students, ... with whom you want to perform a load test.

## Planning

* Stepwise increase of the server load by
** additional participants, who will be added step by step
** by gradually increasing the server load for each individual participant (listening to the moderator only, participants also speak, video is added to the audio connection, ...)
** switching on additional video conference components (split screen, show presentation)
* Monitoring the server load, monitoring upstream and downstream at the clients, ... (Upstream usually has a lower bandwidth than downstream for DSL connections)

## Aim of the load test

* Identification of video conference settings with high IT resource consumption
* Estimation of the BBB server load for different video conference formats
* Estimate the maximum number of videoconference participants depending on the selected videoconference format where audio and video quality of the conference is still good.

## Example for statistical evaluation - Server

The following graphs show an example of a statistical analysis for a stress test of a BigBlueButton-Server. Please note that the limits may look different with different hardware equipment:

### Requirements on the clients

In general, clients participating in a videoconference with a growing number of video streams are exposed to an increased demand of CPU and memory resources for processing and decoding video signals. The capacities of the clients for parallel processed video streams vary dependend on the hardware used by the client. Therefore, all participants should use video streams only if they are actually necessary for the video conference meeting, so that no one is excluded from participating due to hardware constraints.

## Result
### Total number AVP

If the result of the test is, for example, that the server reaches the capacity limit with a number of 300 parallel audio-video participants ($AVP=$ audio video participants), one would plan for example 10% capacity buffer and have 270 AVP booked as parallel audio-video participants, so that all booked video conferences can also run without complications. If other services can have a negative effect on the capacity of the video conference server, you may have to increase the capacity buffer.

### AP1 - AP2 ratio

At the same time, one would also test what proportion of the server load pure unidirectional audio participants AP1 (only listening) or bidirectional audio participants AP2 (listening and speaking) have compared to a single AVP. Since participants usually do not all speak at the same time, the tests can be used to estimate the overall server load of a video conference with 100 AVP compared to an audio conference with 100 AV1 or 100 AV2. Intelligent connection management of a server only maintains the connection and bandwidth when someone is speaking or wants to speak (the right to speak is assigned in a controlled manner by the moderator of the session, if necessary.

### Load of the video conference components

If video conference components (e.g. screen sharing, conference recording) are identified as resource-intensive, the administrator can deactivate these components, if necessary, or provide recommendations for action when using the video conference software.

## General advice

* (network capacity) Videoconferencing consumes more bandwidth of the network beside more server resources compared to a pure audio conference. Do not put extra burden on the limited network capacity for videoconferencing by opening unnecessary videostreams on the client side. This learning resource has been developed in the context of the COVID-19 pandemic and in this context you have to take into account that bandwidth has to be used for other medical purposes (telemedicine) in the countries. And network capacity is a critical resource especially in rural areas, where telemedicine is required for health service delivery and medical advice might be necessary.
* (Asynchronous video presentation and AudioSlides4Web) As the first alternative of limited video conferencing capacities one thinks of video streaming of lectures and teaching. This alternative does not necessarily save bandwidth and centrally located video servers of an educational institution (e.g. Panopto video servers) may not be able to cope with the suddenly increased load of more online teaching, because they are not designed for the now necessary number of users.