Scalable video

Scalable video can greatly improve the quality of video in multi-party sessions. Using this feature, a client automatically publishes a multi-quality video stream, composed of multiple video resolutions and frame rates. This allows simultaneous subscribing endpoints to consume different video resolutions and frame rates.

The scalable video feature is only available for routed sessions (sessions that use the Media Router). See The Media Router and media modes.

For each subscriber to a stream that is published with scalable video, the Media Router dynamically switches between different video resolutions and frame rates for the stream, as network conditions on the subscribing endpoint change.

The scalable video feature is enabled by default in routed sessions, and you do not need to add any code to use scalable video. By default, the Media Router turns on scalable video when it determines the session will benefit from it (when there are more than two clients connected to the session), and the Media Router handles the switching of subscriber stream resolutions and frame rates automatically. You can also enable and disable scalable video for all sessions in a Video API application or for a specific published stream (see below).

Scalable video support

Scalable video is supported for VP8 simulcasts (but it is not supported in Firefox). It is supported for VP9 scalable video. It is not supported for H.264 streams.

Enabling and disabling scalable video

You may want to disable scalable video to lock the resolution and frame rate or to help limit bandwidth. (Streams require more bandwidth if they use scalable video.)

By default, scalable video is automatically enabled for sessions in all applications. You can customize the scalable video setting for a specific application:

  1. Log in to your Vonage Video API Account.

  2. From the left-hand menu, select Applications.

  3. For existing applications click on the three dots and select the Edit option and scroll down to the capability section.

  4. For new application the capability section is displayed after clicking on Create a new application.

  5. Toggle to enable the video option.

  6. Scroll down and click show advanced features.

  7. Find scalable video options list:

    • On — Scalable video is always enabled (in supported clients) for all sessions in the application.
    • Off — Scalable video is not enabled for any sessions in the application.
    • Auto Scalable video is enabled for a session in the application when the Media Router determines that it should be used (when there are more than two clients in the session). Unless there is a specific reason for scalable video to be always on or off, you should leave the Auto option selected.
  8. Click the Save changes button.

By default, in sessions that support scalable video, scalable video is disabled for screen-sharing streams and enabled for all other streams (streams that have a camera or custom video source).

For sessions that support scalable video (that do not have scalable video turned off at the application level), you can override the default scalable video setting for a published stream (enabling it for a screen-sharing stream or disabling it for other streams):

By default, scalable video is disabled for screen-sharing streams.

Setting the preferred frame rate and resolution

All clients can subscribe to scalable video streams. The client SDKs include methods or properties for setting the preferred frame rate and resolution for the stream a subscribing client receives from the Media Router:

For more information, see this article.