I’m happy to share that I’ve joined the video call team at Superpeer! Everyone is friendly and eager to help. I’ve been incredibly impressed by the remote working culture of the company.
With the Covid-19 Pandemic, video conferencing tech is more important than ever and I’m elated to join the team to work on the challenges of real-time communication.
I’ve just finished my first month and I would like to make a summary of my time there
📝 Read lots of papers
📟 Implemented and tried algorithms
🤙 Joined meetings
I’ve been researching call quality analysis, reading articles, and trying some algorithms to understand what is going on to the network during calls and improve call quality.
There are various approaches to measure call quality, detect network problems, and understand customer satisfaction. These methods are classified under 2 main headings.
Quality Of Service
The standard for measuring network performance is QoS. We can use the getStats API of the browsers to measure network quality, estimate bandwidth and identify possible issues. QoS focuses on network characteristics such as jitter, latency, packet loss, MOS, and other parameters. It is useful for measuring technical performance but it is just a part of the story and we cannot account for the relationship between the user experience and the technology.
Quality Of Experience
As mentioned above, QoS metrics are limited to the characterization of the end-user perceptual experience. To understand the impact of the network behavior on the end-user, like frozen frames, jerkiness, blockiness, etc. we are using methods classified under QoE. These methods are also classified within themselves as objective and subjective. Subjective methods ask users to give a score about media quality and objective methods calculate video quality and correlate with subjective test results.
I was looking for and implementing methods compatible with the browser capacity. Some QoS methods need parameters that we cannot get from the browser’s PeerConnection API and some QoE methods require heavy computation and not suitable for real-time application.
For example, I’ve implemented a method that compares frames with some pixel operations like Gaussian blur, histogram calculation, and color space transformation to detect frozen frames but I have concerns about the performance impact on the browser.
Also, I’ve inspected some libraries of the providers like Agora, Vonage, and Twilio to see how they measure network quality and detect unstable connections.
Overall, It has been a satisfying month for me. I had a great onboarding process and learned a bunch of stuff.
There are many interesting topics in WebRTC and the live streaming world. I’ll share my experiments and experiences.
You can follow me on Twitter (@yakupcilesiz) and Medium.