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/calling-sdk-features.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -178,7 +178,7 @@ The Azure Communication Services Calling SDK supports the following streaming co
178
178
| Limit | Web | Windows/Android/iOS |
179
179
| --- | --- | --- |
180
180
|**Maximum # of outgoing local streams that can be sent simultaneously**| 1 video and 1 screen sharing | 1 video + 1 screen sharing |
181
-
|**Maximum # of incoming remote streams that can be rendered simultaneously**| 16 videos + 1 screen sharing on desktop browsers*, 4 videos + 1 screen sharing on web mobile browsers | 9 videos + 1 screen sharing |
181
+
|**Maximum # of incoming remote streams that can be rendered simultaneously**|GA Webjs SDK - [16 videos + 1 screen sharing on desktop browsers](../../quickstarts/voice-video-calling/optimizing-video-placement.md#how-many-videos-to-place-in-a-grid-at-a-time) <br />4 videos + 1 screen sharing on web mobile browsers <br /> <br /> Public preview - [25 videos + 1 screen sharing on desktop browser](../../quickstarts/voice-video-calling/optimizing-video-placement.md#how-many-videos-to-place-in-a-grid-at-a-time) <br />4 videos + 1 screen sharing on web mobile browsers | 9 videos + 1 screen sharing |
182
182
183
183
\* Starting from Azure Communication Services Web Calling SDK version [1.16.3](https://github.com/Azure/Communication/blob/master/releasenotes/acs-javascript-calling-library-release-notes.md#1163-stable-2023-08-24). While the Calling SDK doesn't enforce these limits, your users might experience performance degradation if they're exceeded. Use the API of [Optimal Video Count](../../how-tos/calling-sdk/manage-video.md?pivots=platform-web#remote-video-quality) to determine the number of incoming video streams your web environment can support. To properly support 16 incoming videos, the computer needs a minimum of 16-GB RAM and a 4-core or greater CPU that is less than three years old.
Copy file name to clipboardExpand all lines: articles/communication-services/quickstarts/voice-video-calling/optimizing-video-placement.md
+26-2Lines changed: 26 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ description: This article describes how to place video on a web page based on re
5
5
author: sloanster
6
6
ms.author: micahvivion
7
7
services: azure-communication-services
8
-
ms.date: 06/26/2025
8
+
ms.date: 07/08/2025
9
9
ms.topic: quickstart
10
10
ms.service: azure-communication-services
11
11
ms.subservice: calling
@@ -67,7 +67,7 @@ The optimal video count returns an integer defining the ideal number of videos t
67
67
68
68
Developers should ensure that their application subscribes to changes in the `Optimal Video Count` in group calls and adjust the number of videos being rendered on a web page dynamically based on the OVC count. The value from optimal video count (OVC) updates every 10 seconds.
69
69
70
-
You need to reference the feature `OptimalVideoCount` via the feature method of the Call object. You can then set a listener via the *on* method of the `OptimalVideoCountCallFeature` to be notified when the `optimalVideoCount` changes.
70
+
You need to reference the feature `OptimalVideoCount` via the feature method of the Call object. You can then set a listener via the `on` method of the `OptimalVideoCountCallFeature` to be notified when the `optimalVideoCount` changes.
71
71
72
72
To unsubscribe from the changes, you can call the off method. The current maximum number of incoming videos that can be rendered on a web page is **16**. To properly support 16 incoming videos, the computer should have a minimum of 16-GB RAM and a 4-core or greater CPU that is no older than three years old.
73
73
@@ -169,6 +169,30 @@ getSupportedResolutions();
169
169
| 240p | 15 | 15 | 650 K |
170
170
| 180p | 7.5 | 15 | 250 K(350 K if 15 FPS)|
171
171
172
+
### How many videos to place in a grid at a time
173
+
As the Azure Communication Services WebJS Calling SDK continues to evolve, one of its key capabilities is supporting many incoming video streams in a grid layout on desktop and mobile browsers. This feature is valuable for scenarios like virtual classrooms, large team meetings, or customer support centers where multiple participants need to be visible simultaneously.
174
+
175
+
However, this scalability introduces a trade-off between the number of video streams rendered and the visual quality of each stream. Since the total screen real estate is fixed, increasing the number of video tiles means each individual video renderer must occupy a smaller portion of the screen. To maintain performance and avoid overloading the browser’s rendering pipeline, the SDK dynamically adjusts the resolution of each incoming video stream based on its rendered size. This ensures that bandwidth and CPU usage remain within acceptable limits, but it also means that as more participants join, the resolution of each video may decrease to accommodate the grid.
176
+
177
+
This adaptive behavior helps ensure stable user performance. For instance, in a 2x2 grid with 4 participants, each video can be rendered at a higher resolution. In contrast, with a 5x5 grid displaying 25 participants, each tile is smaller and the SDK may downscale video streams to fit the display size. This approach reduces bandwidth usage and lowers the chances of dropped frames or lag. To support up to 25 incoming video streams, it is recommended to use a computer with at least an 8-core processor and 16GB of RAM
178
+
179
+
The following table illustrates how video resolution changes based on the number of participants displayed in the incoming video grid at any one time.
180
+
181
+
|**Number of incoming streams**|**Incoming video resolution**|
182
+
|------------------|----------------------|
183
+
| 1 | 1080p |
184
+
| 2 | 720p |
185
+
| 3 | 540p |
186
+
| 4 to 9 | 360p |
187
+
| 10 to 16 | 240p |
188
+
| 17 to 25 | 180p |
189
+
190
+
> [!NOTE]
191
+
> The GA version of the calling WebJS SDK allows for up to **16** incoming video streams for desktop browsers (4x4 grid).
192
+
193
+
> [!NOTE]
194
+
> The public preview 1.37.1-beta.1 and greater of the calling WebJS SDK currently supports up to **25** incoming video streams for desktop browsers (5x5 grid).
195
+
172
196
## Conclusion
173
197
174
198
To determine how many videos to place on a web page, you need to carefully consider resolution, device type, bandwidth, and user experience. Follow these guidelines and best practices to create web apps that not only look appealing but also function seamlessly, providing an optimal viewing experience for users across various devices and connection speeds.
0 commit comments