You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/communication-services/concepts/voice-video-calling/simulcast.md
+20-13Lines changed: 20 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,33 +1,40 @@
1
1
---
2
-
title: Azure Communication Services Simulcast
3
-
titleSuffix: An Azure Communication Services concept document
4
-
description: Overview of Simulcast - how sending multiple video quality streams helps overall call quality.
2
+
title: Simulcast
3
+
titleSuffix: An Azure Communication Services article
4
+
description: This article describes how to send multiple video quality streams helps overall call quality.
5
5
author: sloanster
6
6
manager: chpalm
7
7
services: azure-communication-services
8
8
9
9
ms.author: micahvivion
10
-
ms.date: 02/19/2024
10
+
ms.date: 06/26/2025
11
11
ms.topic: conceptual
12
12
ms.subservice: calling
13
13
ms.service: azure-communication-services
14
14
---
15
-
# What is Simulcast?
16
-
Simulcast is a technique that allows video streaming applications to send multiple versions of the same video content at different resolutions and bitrates. This way, the receiver can choose the most suitable version based on their network conditions and device capabilities.
15
+
# Simulcast
17
16
18
-
The lack of simulcast support leads to a degraded video experience in calls with three or more participants. If a video receiver with poor network conditions joins the conference, it impacts the quality of video received from the sender without simulcast support for all other participants. The video sender optimizes its video feed against the lowest common denominator. When simulcast streaming is available the potential impact of one person affecting the entire streaming quality experience is minimized.
17
+
Simulcast is a technique that enables video streaming applications to send multiple versions of the same video content at different resolutions and bitrates. This way, the receiver can choose the most suitable version based on their network conditions and device capabilities.
19
18
20
-
Simulcast is supported on Azure Communication Services SDK for WebJS (1.9.1-beta.1+) and native SDK for Android, iOS, and Windows. Currently, simulcast on the sender side is supported on following desktop browsers - Chrome and Edge. Simulcast on receiver side is supported on all platforms that Azure Communication Services Calling supports. Support for Sender side Simulcast capability from mobile browsers will be added in the future.
19
+
The lack of simulcast support leads to a degraded video experience in calls with three or more participants. If a video receiver with poor network conditions joins the conference, it impacts the quality of video received from the sender without simulcast support for all other participants. The video sender optimizes its video feed against the lowest common denominator. When simulcast streaming is available, the potential impact of one person affecting the entire streaming quality experience is minimized.
21
20
22
-
## How Simulcast works
23
-
Simulcast is a feature that allows a publisher, in this case the Azure Communication Services calling SDK, to send different qualities of the same video to the SFU. The SFU then forwards the most suitable quality to each other endpoint on a call, based on their bandwidth, CPU, and resolution preferences. This way, the publisher can save resources and the subscribers can receive the best possible quality. The SFU doesn't change the video quality, it only selects which one to forward.
21
+
Simulcast is supported on Azure Communication Services SDK for WebJS (1.9.1-beta.1+) and native SDK for Android, iOS, and Windows. Currently, simulcast on the sender side is supported on following desktop browsers - Chrome and Microsoft Edge. Simulcast on receiver side is supported on all platforms that Azure Communication Services Calling supports. Support for Sender side Simulcast capability from mobile browsers is planned for a future release.
22
+
23
+
## How simulcast works
24
+
25
+
The simulcast feature enables a publisher, in this case the Azure Communication Services calling SDK, to send different qualities of the same video to the selective forwarding unit (SFU). The SFU then forwards the most suitable quality to each other endpoint on a call, based on their bandwidth, CPU, and resolution preferences. This way, the publisher can save resources and the subscribers can receive the best possible quality. The SFU doesn't change the video quality. The SFU only selects which one to forward.
26
+
27
+
## Supported number of video qualities available with Simulcast
24
28
25
-
## Supported number of video qualities available with Simulcast.
26
29
Simulcast streaming from a web endpoint supports a maximum two video qualities. There aren't API controls needed to enable Simulcast for Azure Communication Services. Simulcast is enabled and available for all video calls.
27
30
28
31
## Available video resolutions
29
-
When streaming with simulcast, there are no set resolutions for high or low quality simulcast video streams. Instead, based on many different variables, either a single or multiple video steams are delivered. If every subscriber to video is requesting and capable of receiving maximum resolution what publisher can provide, only that maximum resolution will be sent. The following resolutions are supported:
30
-
- 1080P
32
+
33
+
When a participant is streaming with simulcast, there are no set resolutions for high or low quality simulcast video streams. Instead, based on many different variables, either a single or multiple video steams are delivered. If every subscriber to video is requesting and capable of receiving maximum resolution what publisher can provide, only that it sends maximum resolution.
Copy file name to clipboardExpand all lines: articles/communication-services/how-tos/calling-sdk/powerpoint-live.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,9 +14,9 @@ ms.custom: template-how-to
14
14
15
15
# View PowerPoint Live presentations
16
16
17
-
This article describes how to enable meeting participants to view [PowerPoint Live presentations in Microsoft Teams](https://support.microsoft.com/en-us/office/present-from-powerpoint-live-in-microsoft-teams-28b20e74-7165-499c-9bd4-0ad975d448ad) using the Azure Communication Services Calling SDKs.
17
+
This article describes how to enable meeting participants to view [PowerPoint Live presentations in Microsoft Teams](https://support.microsoft.com/office/present-from-powerpoint-live-in-microsoft-teams-28b20e74-7165-499c-9bd4-0ad975d448ad) using the Azure Communication Services Calling SDKs.
18
18
19
-
Attendees who use Azure Communication Services Calling SDKs to [join a Microsoft Teams meeting](./teams-interoperability.md) can view PowerPoint Live presentations and interact with [reactions](./reactions.md) and [raise hand](./raise-hand.md). The attendee view automatically maintains synchronization with the current slide of the Microsoft Teams presenter.
19
+
Attendees who use Azure Communication Services Calling SDKs to [join a Microsoft Teams meeting](./teams-interoperability.md) can view PowerPoint Live presentations and interact with [reactions](./reactions.md) and [raise hand](./raise-hand.md). The attendee view automatically synchronizes with the current slide of the Microsoft Teams presenter.
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/includes/local-preview-mirroring/local-preview-mirroring-android.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
---
2
-
title: Quickstart - Turn off local preview mirroring
3
-
titleSuffix: An Azure Communication Services Quickstart
4
-
description: This quickstart describes how to turn off local preview mirroring
2
+
title: Turn off local preview mirroring
3
+
titleSuffix: An Azure Communication Services article
4
+
description: This article describes how to turn off local preview mirroring
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/includes/local-preview-mirroring/local-preview-mirroring-ios.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
---
2
-
title: Quickstart - Turn off local preview mirroring
3
-
titleSuffix: An Azure Communication Services Quickstart
4
-
description: This quickstart describes how to turn off local preview mirroring
2
+
title: Turn off local preview mirroring
3
+
titleSuffix: An Azure Communication Services article
4
+
description: This article describes how to turn off local preview mirroring.
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/includes/local-preview-mirroring/local-preview-mirroring-windows.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,12 @@
1
1
---
2
-
title: Quickstart - Turn off local preview mirroring
3
-
titleSuffix: An Azure Communication Services Quickstart
4
-
description: This quickstart describes how to turn off local preview mirroring
2
+
title: Turn off local preview mirroring
3
+
titleSuffix: An Azure Communication Services article
4
+
description: This article describes how to turn off local preview mirroring.
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/includes/video-constraints/video-constraints-android.md
+25-17Lines changed: 25 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,11 @@
1
1
---
2
2
ms.author: chengyuanlai
3
-
title: Quickstart - Set video constraints in your Android calling app
4
-
titleSuffix: An Azure Communication Services document
5
-
description: In this quickstart, you learn how to set video constraints in your existing Android calling app using Azure Communication Services.
3
+
title: Set video constraints in an Android calling app
4
+
titleSuffix: An Azure Communication Services article
5
+
description: This article describes how to set video constraints in your existing Android calling app using Azure Communication Services.
The Video Constraints API enables developers to control the video quality from within their video calls. In this quickstart guide, we illustrate how to use the API to set the constraints.
17
+
18
+
The Video Constraints API enables developers to control the video quality from within their video calls. In this article, we illustrate how to use the API to set the constraints.
18
19
19
20
### Prerequisites
21
+
20
22
Refer to the [Voice Calling Quickstart](../../getting-started-with-calling.md?pivots=platform-android) to set up a sample app with voice calling.
21
23
22
24
### Classes
25
+
23
26
| Name | Description |
24
-
| - | - |
27
+
| ---|--- |
25
28
| VideoConstraints | Used to hold both incoming video constraints and outgoing video constraints. |
26
-
| OutgoingVideoConstraints | Used to specify constraints (`maxWidth | maxHeight | maxFrameRate`) for outgoing video streams. |
27
-
| IncomingVideoConstraints | Used to specify constraints (`maxWidth | maxHeight`) for incoming video streams. |
29
+
| OutgoingVideoConstraints | Used to specify constraints (`maxWidth \| maxHeight \| maxFrameRate`) for outgoing video streams. |
30
+
| IncomingVideoConstraints | Used to specify constraints (`maxWidth \| maxHeight`) for incoming video streams. |
28
31
29
32
### Using video constraints
30
33
31
34
The following sections explain how the video constraints can be set for incoming and/or outgoing video streams at different times of a call.
32
35
33
36
#### Set video constraints before starting a call
34
37
35
-
For *incoming* video streams, an `IncomingVideoConstraints` needs to be added to the `IncomingVideoOptions`.
38
+
For *incoming* video streams, you need to add an `IncomingVideoConstraints` to the `IncomingVideoOptions`.
@@ -66,7 +72,9 @@ Since the options are used to start/join a call, the constraints can then be app
66
72
```
67
73
68
74
#### Set video constraints during a call
75
+
69
76
Instead of setting the video constraints before starting a call, you can also dynamically adjust the video constraints during a call. You need to call `setVideoConstraints` on your `Call` type class and provide the constraints.
@@ -85,23 +93,23 @@ Instead of setting the video constraints before starting a call, you can also dy
85
93
call.setVideoConstraints(constraints);
86
94
```
87
95
88
-
To reset/remove the video constraints you previously set, you have to follow the above pattern and provide `0` as a constraint value. Providing `null` values for either `IncomingVideoConstraints` or `OutgoingVideoConstraints`won't reset/remove the constraints and the constraints with a `null` value will be ignored.
96
+
To reset/remove the video constraints you previously set, follow the preceding pattern and provide `0` as a constraint value. Providing `null` values for either `IncomingVideoConstraints` or `OutgoingVideoConstraints`doesn't reset/remove the constraints and the constraints with a `null` value are ignored.
89
97
90
98
### Limitations
91
99
92
100
> [!NOTE]
93
-
> Please make sure you are aware of these limitations when using the Video Constraints API.
94
-
> Some of the limitations will be removed in future releases.
101
+
> Be aware of these limitations when using the Video Constraints API. Some of the limitations should be resolved in future releases.
95
102
96
103
There are some known limitations to the current Video Constraints API.
97
104
98
105
* The constraint is a **max** constraint, which means the possible constraint value can be the specified value or smaller. There's no guarantee that the actual value remains the same as user-specified.
99
106
100
-
* When the user sets a constraint value that is too small, the SDK will use the smallest available value that is supported.
107
+
* When the user sets a constraint value that is too small, the SDK uses the smallest available value that is supported.
101
108
102
109
* For setting `OutgoingVideoConstraints` during a call, the current ongoing video stream doesn't automatically pick up the constraints specified. In order to make the constraints take effect, you need to stop and restart the outgoing video.
103
110
104
-
*`IncomingVideoConstraints` currently is a user-preferred constraint instead of a hard constraint, which means that depending on your network and hardware, the actual value received may still exceed the constraint set.
111
+
*`IncomingVideoConstraints` currently is a user-preferred constraint instead of a hard constraint, which means that depending on your network and hardware, the actual value received might still exceed the constraint set.
105
112
106
113
### Media stats
107
-
To evaluate and compare the video quality after applying the video constraints, you can access [MediaStats API](../../../../concepts/voice-video-calling/media-quality-sdk.md) to get video resolution and bitrate information of the stream. The media stats also include other granular stats related to the streams, such as jitter, packet loss, round trip time, etc.
114
+
115
+
To evaluate and compare the video quality after applying the video constraints, you can access [MediaStats API](../../../../concepts/voice-video-calling/media-quality-sdk.md) to get video resolution and bitrate information of the stream. The media stats also include other granular stats related to the streams, such as jitter, packet loss, round trip time, and so on.
0 commit comments