Blog

...

How to Ensure Better Media Quality for WebRTC

WebRTC has evolved from being an ‘up and coming’ technology. It has successfully become a dominant technology of our times. Real-time communication is in its full swing. In the post-Covid world, WebRTC technology is a necessary tool for how business/work is done.

Our clients from across industry niches are using Web­RTC technology via a web brow­ser, in which JavaScript APIs can capture audio and video from locally connected devices.  

Here, the quality of video largely relies on the browser vendor’s encoding implementation, which utilizes GPU or CPU. With varying frame sizes, frame rates, and bitrates, browser-based encoding for WebRTC has certain limitations. These variabilities wreak havoc on server-side recordings. Due to these limitations, the video bit­rate disturbs high-quality video. 

Video calls make for a more efficient workforce, especially for remote working. By 2024, only 25% of meetings will be held in person, down from 60% in 2019, says Gartner.

That said, video calls oftentimes can be frustrating, with black frames, choppy audio, and frequent network disconnects. This leads to spending precious time trying to switch from video to audio, moving closer to the router, changing networks (wifi to mobile).

WebRTC streams belonging to current web browsers have a better video bitrate, normally around 2Mbps. 2Mbps is the maximum bitrate on Chrome and the minimum video bitrate on chrome is .05Mb/s. Whereas, the starting bitrate on chrome is .3Mb/s.

Chrome allows you to monitor the outbound bandwidth by tapping the real-time reports using the URL chrome://webrtc-internals. Try this when using a local capture of your webcam in a browser-based Web­RTC session. 

Regardless of the frame rate and resolution in use for the capture, you will see similar results. Push the same video content with a non-browser encoder solution and you get much higher quality. 

Everyone must measure the performant configuration of their infrastructure by changing them frequently and step-by-step. 

Our suggestions include:

  • 20 for FPS is optimum, but 10 and 15 can be tried.
  • 720p is good video quality, particularly for mobile platforms.
  • 1000 Kbps is optimum for 720p. 
  • 750 Kbps is acceptable when FPS is 10 (or low).

Now, let’s talk about the main reasons that cause video quality and latency issues.

  1. Client and Server Bandwidth & Upload & Download Network Capacity

Parameter to check under this title-

  • Video Publisher Upload Speed – When publisher upload speed is not enough, the problem of freezing/blurring occurs.
  • Video Player Download Speed – Download speed is another reason. Low player download speed causes freezing/blurring.
  • Server Network Capacity – This is important for Video Streaming. Pay attention to it when you set up a server.
  1. Server Location

Pick a server that is close to your broadcast when the broadcast-quality problem occurs.

  1. Wrong adaptive streaming configuration

Adaptive Streaming consumes high resources. Do not enable adaptive streams more than needed.

  1. Insufficient Resources

With insufficient CPU/RAM resources, the server cannot handle the load. This causes freezing/blurring/pixelating. Always check your system resource usages when streaming.

***

This should initially help you get a nice ultra-low latency live streaming experience with WebRTC. For the support beyond this, experts at RTCWeb.in are always there. Contact us for building WebRTC powered solutions offering ultra-low latency and high-quality videos.