Share
Video Chat API Reliability | Video Chat API Performance | Video Chat API Troubleshooting

Vidyo.io Blog

Video Chat API Performance

Vidyo.io is built on dynamic network adaptation technology that continuously adjusts the video stream to match the capabilities of each endpoint in a call. Vidyo.io uses a sophisticated algorithm that measures available CPU, bandwidth, and screen resolution in order to determine how much, or how little, video information to transmit to a given endpoint. As you can imagine, this process can be fairly complex especially when dealing with a multiparty video call where there are several video streams all being transmitted. However, Vidyo.io manages the streams in a way that maximizes the end user experience, even when conditions are not ideal.

Fortunately, there is a wealth of information that can be accessed via the Vidyo.io client SDKs. The Vidyo.io team has put together a useful utility for viewing log file information or looking at the information in real-time. Even better, the source is available so you can incorporate similar functionality into your own app if you want.

You can get the log viewer utility from the Vidyo GitHub page here.

Lets see how the log viewer utility works! Here are the steps we will go through:

  1. Enable Debug Mode in SDK
  2. Launch Log Viewer
  3. Read Log Viewer Results

Enable Debug Mode

The log viewer assists in debugging client-side issues by grabbing the log from the Vidyo.io SDK through a socket and displaying it in a browser with an easy to read format. In order to pull the data from a Vidyo.io based client, the SDK has to have debug mode enabled.

If you are using the VidyoConnector sample app, it is fairly easy to enable debug mode. From within the VidyoConnector app, click on Conference and then select Toggle Debug.

Enable Debug Mode

If you have built your own client, you can enable debug mode by using the following API:

Using C:

VidyoConnectorEnableDebug(&vc, 7776, "warning info@VidyoClient info@VidyoConnector");

JavaScript:

vidyoConnector.EnableDebug({port:7776, logFilter: "warning info@VidyoClient info@VidyoConnector"});

Debug mode should only be used when debugging is required. For security purposes, we recommend disabling debug mode when it is not needed as it does create an open socket.

Using C:

VidyoConnectorDisableDebug(&vc);

JavaScript:

vidyoConnector.DisableDebug();
NOTE: The log viewer utility will work with the Vidyo.io browser plug-in but it does not work with WebRTC. To troubleshoot WebRTC sessions in Google Chrome, enter chrome://webrtc-internals/ into the address bar to see WebRTC stats.

Launch Log Viewer

Now that debug mode is enabled, your client will allow the log viewer utility to pull call statistics. To start the log utility you have two options. The easiest way is to simply open the log viewer by clicking on this link. Alternatively, you can download the utility from Github and open it locally.

If you are running VidyoConnector in debug mode on the same machine that you opened the log viewer, you will immediately start seeing the activity in the log viewer session. By default, it is configured to connect to a client running on localhost. You can use the log viewer to connect to other clients across the network. This can be useful for diagnosing performance issues on mobile devices for example. To do this, simply enter the IP address or hostname in the “Add Server” field of the log viewer utility. Be sure to include port 7776 with the address string, for example “192.168.1.100:7776”. Also, the client machine and log viewer utility machine need to be on the same network segment as there is no firewall / NAT traversal built into the connection.

Log results

When looking at the log viewer utility you will notice the interface is divided into two sections. Along the top of the interface you will see a timeline which shows the % utilization of CPU and bandwidth utilization. The timeline continuously updates as the log viewer utility receives new log data samples from the client. The bottom portion of the interface includes the details obtained from the log file information received.

You can mouse over the timeline at the top of the interface to see a summary of performance at a given point in time. If you want to drill down into more detail, simply click on the point in the timeline that is interesting to you. This will move the bottom portion of the interface to the time sample selected so you to investigate the information in more detail.

You can see both transmit (TX) and receive (RX) bandwidth for each audio, video, and content share stream in the call. The utility also allows you to see the actual resolution and frame rate for each video stream and use that information to see how the Vidyo.io cloud adapts the resolution.

This is a great utility to diagnose why you may not be getting the video quality that you are expecting. So go give this utility a try!