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/quickstarts/voice-video-calling/optimizing-video-placement.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,7 @@ Several factors influence how many videos you can effectively place on a web pag
32
32
The type of device used to display the web page plays a significant role. For instance, desktops and laptops with larger screens can accommodate more videos than mobile devices. It's advisable to use responsive design techniques to adjust the number and sizes of videos based on screen dimensions. Additionally, the local machine must process, encode, and display these videos properly. The size of the local monitor screen and browser abilities also determine the number of active videos that can be displayed simultaneously on a web page. Therefore, all these factors must be considered when developing the concept of happy pages to embed on a web page.
33
33
34
34
### Resolution and Video size
35
-
The higher the resolution of the end users display means the more videos you can display in their current web view. However, this doesn't mean filling every pixel with videos. The goal is to balance quality and performance. As you place more videos to be displayed on a page, you must consider more incoming and outgoing bandwidth that are used.
35
+
The higher the resolution of the end users display means the more videos you can display in their current web view. However, this doesn't mean you should filling every pixel on the screen with video output. The goal is to balance quality and performance. As you place more videos to be displayed on a page, you must consider more incoming and outgoing bandwidth that are used.
36
36
37
37
### Internet Bandwidth Considerations
38
38
To best understand an end user's internet speed capabilities, It's essential to grasp the basics of how internet speeds are measured and what factors can influence them. Internet speeds are typically measured in megabits per second (Mbps), which indicates the rate at which data is downloaded or uploaded. Several factors can affect these speeds, including the type of internet connection (fiber, cable, wifi, cellular), the quality of the networking equipment (modem, router), and the number of devices connected to the network.
@@ -48,14 +48,13 @@ Ultimately, the user experience should dictate how many videos are placed on a w
48
48
Highlight the most important or engaging videos prominently on the page. Ensure they're purposeful and effectively enhance the narrative or key people the page you intend to have video be viewable.
49
49
50
50
### Implement Lazy Loading
51
-
52
51
Lazy loading delays the loading of videos until they're needed or in the viewport. This method can significantly enhance page performance, especially when multiple videos are present.
53
52
54
53
### Utilize Optimal Video Count API
55
54
56
-
The Azure Communication Services WebJS SDK introduced the [Optimal Video Count (OVC)](../../how-tos/calling-sdk/manage-video.md?pivots=platform-web) feature in version 1.15.1. OVC informs applications how many incoming videos from different participants can be optimally rendered during a group call. The optimalVideoCount property adjusts dynamically based on network and hardware capabilities. Applications should update the number of videos rendered according to the output from OVC. The value from optimal video count (OVC) is updated every 10 seconds.
55
+
The Azure Communication Services WebJS SDK introduced the [Optimal Video Count (OVC)](../../how-tos/calling-sdk/manage-video.md?pivots=platform-web) feature in version 1.15.1. OVC informs applications how many incoming videos from different participants can be optimally rendered during a group call. The `optimalVideoCount` property adjusts dynamically based on network and hardware capabilities. Applications should update the number of videos rendered according to the output from OVC. The value from optimal video count (OVC) is updated every 10 seconds.
57
56
58
-
The optimalVideoCount feature is a call feature. 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. 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 16GB RAM and a 4-core or greater CPU that is no older than 3 years old.
57
+
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. 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.
Developers should ensure that their application subscribes to changes in the Optimal Video Count in group calls. The optimal video count returns an integer defining the ideal number of videos that can be displayed on a web page. When there's a change in the optimal video count, if the result indicates increased capacity on the local computer for more incoming videos, you can create a new renderer using the [createView method](javascript/api/azure-communication-services/@azure/communication-calling/videostreamrenderer?view=azure-communication-services-js&preserve-view=true#@azure-communication-calling-videostreamrenderer-createview) to display more incoming video streams on the page. Conversely, if the optimal count decreases and is [less than the current number of videos on the page](../../resources/troubleshooting/voice-video-calling/video-issues/reaching-max-number-of-active-video-subscriptions.md), you should consider disposing of a video using the dispose method and updating the application layout accordingly.
66
+
Developers should ensure that their application subscribes to changes in the `Optimal Video Count` in group calls. The optimal video count returns an integer defining the ideal number of videos that can be displayed on a web page. When there's a change in the optimal video count value, if the result indicates increased capacity on the local computer for more incoming videos, you can create a new incoming video using the [`createView`](/javascript/api/azure-communication-services/@azure/communication-calling/videostreamrenderer?view=azure-communication-services-js&preserve-view=true#@azure-communication-calling-videostreamrenderer-createview) method to display additional incoming video streams to be displayed on the page. Conversely, if the optimal count decreases and is [less than the current number of videos on the page](../../resources/troubleshooting/voice-video-calling/video-issues/reaching-max-number-of-active-video-subscriptions.md), you should consider disposing of a video using the dispose method and updating the application layout accordingly.
68
67
69
68
## Guidelines for the Maximum Video Size on a Page
70
69
@@ -82,10 +81,10 @@ For instance, in a group call where seven participants have their video cameras
82
81
83
82
Items to Note:
84
83
85
-
- It's crucial to review and adhere to the [Optimal Video Count (OVC)](../../how-tos/calling-sdk/manage-video.md?pivots=platform-web) to ensure that the total number of rendered videos remains below the OVC threshold.
84
+
- It's crucial to review and adhere to the ['Optimal Video Count (OVC)'](../../how-tos/calling-sdk/manage-video.md?pivots=platform-web) to ensure that the total number of rendered videos remains below the OVC value threshold.
86
85
- Each client can specify which user's video they want to receive and set individual resolution sizes on their respective machines.
87
86
- It's important to note that each participant's ability to send a specific video resolution can vary. Some computers are equipped with higher quality cameras, enabling them to transmit a 1080p video. Conversely, some mobile browsers may have lower video transmission capabilities, such as only 540p. If you embedded the video resolution to be 1080p or 720p in a page, the incoming video may not match that resolution. In this case, a video stream is upscaled. to fill the video renderer size.
88
-
- Azure Communication Services video [Simulcast](../../concepts/voice-video-calling/simulcast.md) ability enhances video streaming by enabling a single video to delivered by an end client at multiple resolutions and bitrates simultaneously. This functionality allows viewers with varying network conditions to select which video rendition to select to receive for the best possible video quality without buffering or interruptions. By optimizing bandwidth usage, simulcast sends higher resolution streams only to users who can support them, thereby minimizing unnecessary data transmission. This improves the overall user experience by providing stable and consistent video quality and enables adaptive streaming. However, It's important to note that simulcast isn't supported on all browser devices. Currently, simulcast is unavailable when sending videos on mobile browsers or macOS Safari. If a participant attempts to render 720p video from a user on iOS Safari, Android Chrome, or macOS Safari, but another participant on the call tries to render the same video at a smaller resolution, both receive the smaller resolution. This is because those devices prioritize smaller resolutions when simulcast send are unsupported.
87
+
- Azure Communication Services video [Simulcast](../../concepts/voice-video-calling/simulcast.md) ability enhances video streaming by enabling a single video to be delivered by an end client at multiple resolutions and bitrates simultaneously. This functionality allows viewers with varying network conditions to select which video rendition to select to receive for the best possible video quality without buffering or interruptions. By optimizing bandwidth usage, simulcast sends higher resolution streams only to users who can support them, thereby minimizing unnecessary data transmission. Simulcast improves the overall user experience by providing stable and consistent video quality and enables adaptive streaming. However, It's important to note that simulcast isn't supported on all browser devices. Currently, simulcast is unavailable when sending videos on mobile browsers or macOS Safari. If a participant attempts to render 720p video from a user on iOS Safari, Android Chrome, or macOS Safari, but another participant on the call tries to render the same video at a smaller resolution, both receive the smaller resolution. This is because those devices prioritize smaller resolutions when simulcast send are unsupported.
89
88
90
89
## Conclusion
91
90
Determining how many videos to place on a web page requires careful consideration of resolution, device type, bandwidth, and user experience. By following these guidelines and best practices, developers can create web pages 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