---
title: Optimizing WebRTC CPaaS Applications – WebRTC.ventures
description: CPaaS platforms enable developers to quickly and easily integrate audio and video by leveraging WebRTC APIs built in under the hood. However, this layer of abstraction can make it difficult to make optimizations. What can you do to improve call quality and user experience in your WebRTC CPaaS application? Hamza offers some ideas and tests them with one of the more popular CPaaS platforms, the Vonage Video API.
image: https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/Default-B-Apr-03-2024-06-59-54-7168-PM.jpg
---

[Skip to content](https://blog.webrtc.ventures/2022/11/optimizing-webrtc-cpaas-applications#main-content)

![WebRTC.ventures](https://blog.webrtc.ventures/hubfs/logo-main-light.svg)

- [WebRTC Services](https://webrtc.ventures/webrtc-development-services/)
  
  Show submenu for WebRTC Services 
  
    - [Assess](https://webrtc.ventures/services/assess/)
    - [Build](https://webrtc.ventures/services/build/)
    - [Integrate](https://webrtc.ventures/services/integrate/)
    - [Test](https://webrtc.ventures/services/test/)
    - [Manage](https://webrtc.ventures/services/manage/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
- Our Partners
  
  Show submenu for Our Partners 
  
    - [Amazon Chime SDK](https://webrtc.ventures/partners/amazon-chime-sdk/)
- Stories of Success
  
  Show submenu for Stories of Success 
  
    - [Remote Video Interpreting Platform with Agent Routing](https://webrtc.ventures/successes/remote-video-translation-platform/)
    - [WebRTC to SIP Gateway for ASL Interpreters](https://webrtc.ventures/successes/webrtc-to-sip-gateway-for-asl-interpreters/)
    - [Audio Listening Device to Improve Surgical Outcomes](https://webrtc.ventures/successes/audio-listening-device-to-improve-surgical-outcomes/)
    - [Albania’s First Telemedicine Platform](https://webrtc.ventures/successes/albanias-first-telemedicine-platform/)
    - [Automated Video Storytelling with the Amazon Chime SDK](https://webrtc.ventures/successes/automated-video-storytelling-with-the-amazon-chime-sdk/)
    - [Large Scale Video Conferencing](https://webrtc.ventures/successes/large-scale-video-conferencing/)
    - [Broadcasting and Webcast Control Room](https://webrtc.ventures/successes/live-video-broadcasting-and-webcast-control-room/)
- WebRTC Resources
  
  Show submenu for WebRTC Resources 
  
    - [WebRTC Live](https://webrtc.ventures/webrtc-live/)
    - [WebRTC Tips](https://www.youtube.com/playlist?list=PLayYqdnyegt3QvxX-Rt6wbFIK8727Z5Oz)
    - [WebRTC.ventures Blog](https://webrtc.ventures/blog/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
    - [WebRTC.ventures Training Program](https://webrtc.ventures/webrtc-ventures-training-program/)
- [About Us](https://webrtc.ventures/our-team/)
  
  Show submenu for About Us 
  
    - [Blog](https://webrtc.ventures/blog/)
    - [Our Team](https://webrtc.ventures/our-team/)
    - [Jobs](https://webrtc.ventures/jobs/)

Open main navigation

Close main navigation

- [WebRTC Services](https://webrtc.ventures/webrtc-development-services/)
  
  Show submenu for WebRTC Services 
  
    - [Assess](https://webrtc.ventures/services/assess/)
    - [Build](https://webrtc.ventures/services/build/)
    - [Integrate](https://webrtc.ventures/services/integrate/)
    - [Test](https://webrtc.ventures/services/test/)
    - [Manage](https://webrtc.ventures/services/manage/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
- Our Partners
  
  Show submenu for Our Partners 
  
    - [Amazon Chime SDK](https://webrtc.ventures/partners/amazon-chime-sdk/)
- Stories of Success
  
  Show submenu for Stories of Success 
  
    - [Remote Video Interpreting Platform with Agent Routing](https://webrtc.ventures/successes/remote-video-translation-platform/)
    - [WebRTC to SIP Gateway for ASL Interpreters](https://webrtc.ventures/successes/webrtc-to-sip-gateway-for-asl-interpreters/)
    - [Audio Listening Device to Improve Surgical Outcomes](https://webrtc.ventures/successes/audio-listening-device-to-improve-surgical-outcomes/)
    - [Albania’s First Telemedicine Platform](https://webrtc.ventures/successes/albanias-first-telemedicine-platform/)
    - [Automated Video Storytelling with the Amazon Chime SDK](https://webrtc.ventures/successes/automated-video-storytelling-with-the-amazon-chime-sdk/)
    - [Large Scale Video Conferencing](https://webrtc.ventures/successes/large-scale-video-conferencing/)
    - [Broadcasting and Webcast Control Room](https://webrtc.ventures/successes/live-video-broadcasting-and-webcast-control-room/)
- WebRTC Resources
  
  Show submenu for WebRTC Resources 
  
    - [WebRTC Live](https://webrtc.ventures/webrtc-live/)
    - [WebRTC Tips](https://www.youtube.com/playlist?list=PLayYqdnyegt3QvxX-Rt6wbFIK8727Z5Oz)
    - [WebRTC.ventures Blog](https://webrtc.ventures/blog/)
    - [Migrating From Twilio Video](https://webrtc.ventures/twilio-video/)
    - [WebRTC.ventures Training Program](https://webrtc.ventures/webrtc-ventures-training-program/)
- [About Us](https://webrtc.ventures/our-team/)
  
  Show submenu for About Us 
  
    - [Blog](https://webrtc.ventures/blog/)
    - [Our Team](https://webrtc.ventures/our-team/)
    - [Jobs](https://webrtc.ventures/jobs/)
- [Contact us](https://webrtc.ventures/contact/)

[Contact us](https://webrtc.ventures/contact/)

 Nov 15, 2022 12:00:00 AM

# Optimizing WebRTC CPaaS Applications

[Hamza Nasir](https://blog.webrtc.ventures/author/hamza-nasir)

Share: [linkedin-in icon](http://www.linkedin.com/shareArticle?mini=true&url=https://blog.webrtc.ventures/2022/11/optimizing-webrtc-cpaas-applications) [X Twitter icon](https://twitter.com/intent/tweet?url=https://blog.webrtc.ventures/2022/11/optimizing-webrtc-cpaas-applications) [envelope icon](mailto:?body=https://blog.webrtc.ventures/2022/11/optimizing-webrtc-cpaas-applications)

The Illinois Institute of Technology (my alma mater!) hosted its annual [Real Time Communications Conference and Expo](https://www.rtc-conference.com/2022/) last month with an array of incredible presentations by talented speakers. I was lucky enough to be a presenter in the WebRTC and Real Time Applications track which was chaired by none other than our WebRTC.ventures CTO, Alberto Gonzalez. [You can watch all the WebRTC track talks here.](https://webrtc.ventures/2022/10/rtc-conference-2022-webrtc-track-talks/)

In this post, I’ll go over some of the points of my presentation about optimizing CPaaS video applications. CPaaS (Communications Platform as a Service) platforms are SDKs / APIs that enable developers to quickly and easily integrate audio and video into their application by leveraging WebRTC APIs built in under the hood. However, this layer of abstraction often makes it difficult to make optimizations to get some extra juice out of the platform.

So, what *can* you do to improve call quality and user experience in your WebRTC CPaaS application? Let’s look at some ideas and test them with one of the more popular CPaaS platforms, the [Vonage Video API](https://www.vonage.com/communications-apis/video/).

You can watch the video of my session here. Or, scroll down to read the rest of this post.

## Optimizing Session Connection

No one likes waiting and watching a loading screen when they hit the join call button. Or worse, seeing nothing at all. For this reason, we recommend forcing participants to join with their video/audio disabled after a certain number of participants are in the call. This preserves network bandwidth and allows the CPaaS platform to utilize that bandwidth for connecting streams.

When testing, we found the following improvement:

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-15-at-11_49_40-AM.png?width=493&height=301&name=Screen-Shot-2022-11-15-at-11_49_40-AM.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-15-at-11_49_40-AM.png?width=493&height=301&name=Screen-Shot-2022-11-15-at-11_49_40-AM.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-15-at-11_49_40-AM.png)

As you can see, up until the 8th participant we see no major improvement in load time with this method. After the 8th participant, we see a significant improvement. 

## Throttle Resolution

For large calls, it’s often desirable to reduce the resolution of subscriber streams to conserve network bandwidth and mitigate network congestion. Most CPaaS platforms provide this option especially if you’re using [VP8](https://bloggeek.me/webrtcglossary/vp8/) as your video codec which supports simulcast. Make sure your resolution is not set to something more than your DOM element displayed on screen.

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_49_04-PM-1024x565.png?width=512&height=283&name=Screen-Shot-2022-11-14-at-4_49_04-PM-1024x565.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_49_04-PM-1024x565.png?width=512&height=283&name=Screen-Shot-2022-11-14-at-4_49_04-PM-1024x565.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_49_04-PM.png)

You can see the network bandwidth difference between a stream at 320 x 240 (low res) and a stream at 1280 x 720 (high res). At lower resolution, the bitrate has high variance. But on average, it has almost half the bitrate when compared to high resolution.

## Throttle Frame Rate

Just like resolution, you can also throttle the frame rate for your subscribed stream to reduce network bandwidth. The specific boundaries for frame rate will depend on your application. We found that these constraints worked best for our clients:

- Less than 5, set to 30fps
- From 5 to 9, set to 15fps
- Greater than 9, set to 7 fps

Here’s a comparison of the bitrate difference between a high FPS stream and a low FPS stream:

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_49_48-PM-1024x545.png?width=512&height=273&name=Screen-Shot-2022-11-14-at-4_49_48-PM-1024x545.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_49_48-PM-1024x545.png?width=512&height=273&name=Screen-Shot-2022-11-14-at-4_49_48-PM-1024x545.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_49_48-PM.png)

## Don’t show what they can’t see

A common mistake made by developers happens when a subscriber video stream isn’t visible on screen, they forget to unsubscribe to the stream. This means that you’re still allocating CPU / network resources to that stream, even though the user can’t see it. A better option is to use browser scroll events to determine when the stream is in view and then dynamically subscribe/unsubscribe.

## Layout strategy for mobile and extremely large calls

All of the optimizations discussed so far apply to your existing CPaaS setup. Now let’s discuss changing your call layout to better support mobile users and to make your video application scalable in order to allow many more participants.

The idea is simple. Detect who is speaking and only show their stream on the entire screen. Everyone else’s video remains unsubscribed. Switching between video streams this way provides a twofold advantage. First, it improves scalability for sessions with more than 50 participants. Second, it offers better quality for the user because it allows us to subscribe to the mainstream at a higher resolution and frame rate.

Here’s an example of such a layout:

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_50_53-PM-1024x585.png?width=512&height=293&name=Screen-Shot-2022-11-14-at-4_50_53-PM-1024x585.png) ![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_50_53-PM-1024x585.png?width=512&height=293&name=Screen-Shot-2022-11-14-at-4_50_53-PM-1024x585.png)](https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/Screen-Shot-2022-11-14-at-4_50_53-PM.png)

***As you can see, there are a surprising number of things that you can do to optimize your WebRTC CPaaS application. All you need is an experienced WebRTC integration team like ours at WebRTC.ventures. We’re available for assessment and optimization projects.*** [***Let us know your pain points***](https://webrtc.ventures/contact-assess/) ***and we’ll work hard to solve them!***

[CPaaS](https://blog.webrtc.ventures/tag/cpaas), [Managed Services](https://blog.webrtc.ventures/tag/managed-services), [Events](https://blog.webrtc.ventures/tag/events), [Video Conferencing](https://blog.webrtc.ventures/tag/video-conferencing), [Real Time Weekly](https://blog.webrtc.ventures/tag/real-time-weekly), [WebRTC Architecture](https://blog.webrtc.ventures/tag/webrtc-architecture), [Broadcasting](https://blog.webrtc.ventures/tag/broadcasting), [Medical](https://blog.webrtc.ventures/tag/medical), [WebRTC Live](https://blog.webrtc.ventures/tag/webrtc-live), [Showcase](https://blog.webrtc.ventures/tag/showcase), [Thoughts](https://blog.webrtc.ventures/tag/thoughts), [Vonage](https://blog.webrtc.ventures/tag/vonage), [Daily](https://blog.webrtc.ventures/tag/daily), [Jobs](https://blog.webrtc.ventures/tag/jobs), [Contact Centers](https://blog.webrtc.ventures/tag/contact-centers), [Telehealth](https://blog.webrtc.ventures/tag/telehealth), [Education](https://blog.webrtc.ventures/tag/education), [Technical](https://blog.webrtc.ventures/tag/technical), [General](https://blog.webrtc.ventures/tag/general), [Story of success](https://blog.webrtc.ventures/tag/story-of-success), [The WebRTC.ventures Blog](https://blog.webrtc.ventures/tag/the-webrtc-ventures-blog), [Testing](https://blog.webrtc.ventures/tag/testing), [Gaming](https://blog.webrtc.ventures/tag/gaming), [DevOps](https://blog.webrtc.ventures/tag/devops), [Symbl.ai](https://blog.webrtc.ventures/tag/symbl-ai)

## Related posts

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Azure-Communication-Services.png?height=200&name=Azure-Communication-Services.png)](https://blog.webrtc.ventures/2020/10/azure-communication-services)

## [Azure Communication Services](https://blog.webrtc.ventures/2020/10/azure-communication-services)

[Hamza Nasir](https://blog.webrtc.ventures/author/hamza-nasir) 

 Oct 21, 2020 12:00:00 AM

\[vc\_row\]\[vc\_column\]\[vc\_column\_text\]Our team at WebRTC.ventures often leverages a...

[Read more](https://blog.webrtc.ventures/2020/10/azure-communication-services)

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/Comparing-and-Evaluating-Popular-CPaaS-Services-3.png?height=200&name=Comparing-and-Evaluating-Popular-CPaaS-Services-3.png)](https://blog.webrtc.ventures/2019/07/comparing-and-evaluating-popular-cpaas-services)

## [Comparing and Evaluating Popular CPaaS Services](https://blog.webrtc.ventures/2019/07/comparing-and-evaluating-popular-cpaas-services)

[Hamza Nasir](https://blog.webrtc.ventures/author/hamza-nasir) 

 Jul 23, 2019 12:00:00 AM

One of the most popular questions asked by WebRTC developers and enthusiasts alike is “Between...

[Read more](https://blog.webrtc.ventures/2019/07/comparing-and-evaluating-popular-cpaas-services)

[![](https://blog.webrtc.ventures/hs-fs/hubfs/Imported_Blog_Media/5-Steps-to-Solve-Your-WebRTC-Application-Issues.png?height=200&name=5-Steps-to-Solve-Your-WebRTC-Application-Issues.png)](https://blog.webrtc.ventures/2023/06/5-steps-to-solve-your-webrtc-application-issues)

## [5 Steps to Solve Your WebRTC Application Issues](https://blog.webrtc.ventures/2023/06/5-steps-to-solve-your-webrtc-application-issues)

![Picture of Jen Oppenheimer](https://blog.webrtc.ventures/hs-fs/hubfs/Our-Team-Jen.jpg?width=50&name=Our-Team-Jen.jpg) [Jen Oppenheimer](https://blog.webrtc.ventures/author/jen-oppenheimer) 

 Jun 9, 2023 12:00:00 AM

Are you having poor video quality issues in your live video application? User interface complaints?...

[Read more](https://blog.webrtc.ventures/2023/06/5-steps-to-solve-your-webrtc-application-issues)

### WebRTC.Ventures Services

...

- Assess
- Build
- Integrate
- Test
- Deploy & Manage

### Contact Us

...

**Video should be an opportunity, not a headache.**   
 We’re here to build, integrate, assess and optimize, test, and even deploy and manage your live video application. 

[Contact us](https://blog.webrtc.ventures/2022/11/optimizing-webrtc-cpaas-applications#contact)

### WebRTC Live

...

 View [past episodes](https://blog.webrtc.ventures/webrtc-live/) of our webinar interview series about the latest webRTC use cases and technical updates. Join our mailing list to learn about upcoming episodes! 

![WebRTC Live](https://blog.webrtc.ventures/hs-fs/hubfs/Template%20Images/widged-bannet.webp?height=90&name=widged-bannet.webp)

![logo-main-light](https://blog.webrtc.ventures/hubfs/logo-main-light.svg "logo-main-light")

We’re one of the few agencies in the world dedicated to WebRTC development. This dedication and experience is why so many people trust us to help bring live video application dreams to life.

 

### Let's get started!

###### **[Contact us today](https://webrtc.ventures/contact/)**

**[info@webrtc.ventures](mailto:info@webrtc.ventures)**

<https://www.linkedin.com/company/webrtc-ventures> <https://www.youtube.com/@WebrtcVentures>

### Join our mailing list

We don't e-mail often (a few times a month max), and it will be worth it when we do! Of course, we respect your privacy and will not share your contact information.

© 2023 WebRTC.ventures, an [AgilityFeat](https://agilityfeat.com/) company / [Privacy Policy](https://webrtc.ventures/privacy-policy//)

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Hamza Nasir",
    "url" : "https://blog.webrtc.ventures/author/hamza-nasir"
  },
  "dateModified" : "2024-04-03T19:02:29.546Z",
  "datePublished" : "2022-11-15T05:00:00.000Z",
  "headline" : "Optimizing WebRTC CPaaS Applications – WebRTC.ventures",
  "image" : [ "https://blog.webrtc.ventures/hubfs/Imported_Blog_Media/Default-B-Apr-03-2024-06-59-54-7168-PM.jpg" ],
  "mainEntityOfPage" : {
    "@id" : "https://blog.webrtc.ventures/2022/11/optimizing-webrtc-cpaas-applications",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://blog.webrtc.ventures/hubfs/logo-main-light.svg"
    }
  }
}
```