NEWDolby Interactivity APIs are now the Dolby.io Communications APIs Learn More >
X

Video Forwarding

Version 3.1 of the Dolby.io Communications Client SDKs introduces a new way of receiving video streams during conferences. This release introduces dynamic control over the number of video streams transmitted to the local participant. This feature reduces bandwidth and CPU consumption, and allows participants to decide how to view video during conferences. The Video Forwarding feature improves the conference experience in situations such as poor network conditions or limited device processing power. By limiting the number of received video streams, participants can prevent their devices from overheating and avoid slowing down programs or affecting audio quality.

A graphic that presents Video ForwardingA graphic that presents Video Forwarding

A graphic that presents Video Forwarding

JavaScript

Participants can modify the Video Forwarding parameters' values when they join a conference and during a conference. To enable joining conferences with the established maximum number of the received video streams, the join and listen methods include the new maxVideoForwarding parameter in the JoinOptions and ListenOptions models.

const maxVideoForwarding = 10;
await VoxeetSDK.conference.join({
  conference: conferenceObject,
  params: {
    maxVideoForwarding: maxVideoForwarding,
  },
});

To enable conference participants to configure Video Forwarding during conferences, the Web SDK introduces a new videoForwarding API. The API includes two parameters:

  • max, which specifies the maximum number of video streams that may be transmitted to the local user. The valid parameter's values are between 0 and 25 for desktop browsers and between 0 and 4 for mobile browsers. In the case of providing a value smaller than 0 or greater than the valid values, SDK triggers the VideoForwardingError.

  • participants, which allows prioritizing specific participant's video streams and display their videos even when these participants do not talk. For example, in the case of virtual classes, this option allows participants to pin the teacher's video and see the teacher, even when the teacher is not the active speaker.

var participants = [{ externalId: externalId }];
await VoxeetSDK.conference.videoForwarding(max, participants);

Based on the specified parameters, the SDK calculates the required streams for each conference participant:

  • If the number of elements in the participants array is smaller than the value of the max parameter, the SDK includes videos of additional participants, which are not specified in the participants parameter. In Dolby Voice conferences, the SDK selects additional participants based on their audio volume, which means that the SDK displays the active speakers' videos. In non-Dolby Voice conferences, the SDK does not select additional participants based on their audio volume, therefore, we recommend using the participants parameter in these conferences.

  • If the number of elements in the participants array is greater than the value of the max parameter, the SDK selects only the max number of the prioritized participants. The rest of the pinned participants' IDs are not taken into account because the number of pinned participants exceeds the established limit.

The application can continue to rely on the streamAdded, streamUpdated, and streamRemoved events to get notified about the video forwarding status for a particular participant

iOS

Participants can modify the Video Forwarding parameters' values when they join a conference and during a conference. To enable joining conferences with the established maximum number of the received video streams, the join and listen methods include the new maxVideoForwarding parameter in the VTJoinOptions and VTListenOptions models.

let options = VTJoinOptions()
options.maxVideoForwarding = number

VoxeetSDK.shared.conference.join(conference: Conference, options: options, success: { conference in }, fail: { error in })

To enable conference participants to configure Video Forwarding during conferences, the Web SDK introduces a new videoForwarding API. The API includes two parameters:

  • max, which specifies the maximum number of video streams that may be transmitted to the local user. The valid parameter's values are between 0 and 4. The default value is 4. In the case of providing a value smaller than 0, SDK automatically changes the value to 0 and triggers the VideoForwardingError. In the case of providing a value greater than 4, SDK automatically changes the parameter value to 4 and also triggers the videoForwarding error.

  • participants, which allows prioritizing specific participant's video streams and display their videos even when these participants do not talk. For example, in the case of virtual classes, this option allows to pin the teacher's video and see the teacher, even when the teacher is not the active speaker.

let participant = VTParticipant()

VoxeetSDK.shared.conference.videoForwarding(max: number, participants: [participant]) { error in }

Based on the specified parameters, the SDK calculates the required streams for each conference participant:

  • If the number of elements in the participants array is smaller than the value of the max parameter, the SDK includes videos of additional participants, which are not specified in the participants parameter. In Dolby Voice conferences, the SDK selects additional participants based on their audio volume, which means that the SDK displays the active speakers' videos. In non-Dolby Voice conferences, the SDK does not select additional participants based on their audio volume, therefore, we recommend using the participants parameter in these conferences.

  • If the number of elements in the participants array is greater than the value of the max parameter, the SDK selects only the max number of the prioritized participants. The rest of the pinned participants' IDs are not taken into account because the number of pinned participants exceeds the established limit.

The application can continue to rely on the streamAdded, streamUpdated, and streamRemoved events to get notified about the video forwarding status for a particular participant.

Android

Participants can modify the Video Forwarding parameters' values when they join a conference and during a conference. To enable joining conferences with the established maximum number of the received video streams, the join method includes the new setMaxVideoForwarding parameter in the ConferenceJoinOptions.Builder model.

VoxeetSDK.conference().join(
  new ConferenceJoinOptions.Builder(conference)
    .setMaxVideoForwarding(number)
    .build())
  .then(conference -> {
    // manage the success here
  })
  .error(error -> {
    // manage the error here
  });

To enable conference participants to configure Video Forwarding during conferences, the Web SDK introduces a new videoForwarding API. The API includes two parameters:

  • max, which specifies the maximum number of video streams that may be transmitted to the local user. The valid parameter's values are between 0 and 4. The default value is 4. In the case of providing a value smaller than 0, SDK automatically changes the value to 0 and triggers the VideoForwardingError. In the case of providing a value greater than 4, SDK automatically changes the parameter value to 4 and also triggers IllegalStateException.

  • participants, which allows prioritizing specific participant's video streams and display their videos even when these participants do not talk. For example, in the case of virtual classes, this option allows to pin the teacher's video and see the teacher, even when the teacher is not the active speaker.

VoxeetSDK.conference().videoForwarding(number, participants);

Based on the specified parameters, the SDK calculates the required streams for each conference participant:

  • If the number of elements in the participants array is smaller than the value of the max parameter, the SDK includes videos of additional participants, which are not specified in the participants parameter. In Dolby Voice conferences, the SDK selects additional participants based on their audio volume, which means that the SDK displays the active speakers' videos. In non-Dolby Voice conferences, the SDK does not select additional participants based on their audio volume, therefore, we recommend using the participants parameter in these conferences.

  • If the number of elements in the participants array is greater than the value of the max parameter, the SDK selects only the max number of the prioritized participants. The rest of the pinned participants' IDs are not taken into account because the number of pinned participants exceeds the established limit.

The application can continue to rely on streamAddedEvent, streamUpdatedEvent, and streamRemovedEvent to get notified about the video forwarding status for a particular participant.


Did this page help you?