close search

Add Messaging, Voice, and Authentication to your apps with Vonage Communications APIs

Visit the Vonage API Developer Portal

Scalable video

About the OpenTok scalable video feature

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 in routed sessions (sessions that use the OpenTok Media Router). See The OpenTok Media Router and media modes.

For each subscriber to a stream that is published with scalable video, the OpenTok 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 OpenTok 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 OpenTok 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 project or for a specific published stream (see below).

Scalable video support

Scalable video is only available in streams published by clients that use:

It is only supported for VP8 streams. It is not supported for H.264 or VP9 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 bandwith if they use scalable video.)

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

  1. Go to your Video API account and select the project from the list of projects in the left-hand menu.

  2. Under Project settings, find Scalable Video and select the desired setting for the project:

    • On — Scalable video is always enabled (in supported clients) for all sessions in the project.

    • Off — Scalable video is not enabled for any sessions in the project.

    • Auto (default) — Scalable video is enabled for a session in the project when the OpenTok 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.

  3. Click the Save 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 project 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):

Setting the preferred preferred frame rate and resolution

All OpenTok 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 OpenTok Media Router:

For more information, see this article.