Performance Analysis of WebRTC-based Video Conferencing

More Info
expand_more

Abstract

Video Conferencing has been rapidly gaining attention and is becoming a more popular way to communicate due to better internet connectivity and increasing computation power. Because of this increase in demand, the dying out of proprietary plugins like Adobe Flash, and the need for easy and accessible video conferencing, a new browser technology emerged: WebRTC. WebRTC allows internet browsers to perform a peer-to-peer video conference without the need to install additional plugins or applications. WebRTC is widely adopted for video conferencing solutions and getting more support across all browsers. WebRTC is easy to use by application developers, but unfortunately does not allow a developer to easily have insight into the video call characteristics made on the platform. This is because the way WebRTC handles network congestion is completely hidden away in the code of the browser. This work describes the media pipeline of WebRTC including all different network protocols used by WebRTC. To have a better understanding of how WebRTC handles network congestion, the Google Congestion Control (GCC) algorithm used by WebRTC is analyzed. Since WebRTC works over UDP which does not support congestion control like e.g. TCP does, a custom made congestion control is used. GCC changes the data rate based on packet loss and latency measured at respectively the sender and the receiver side during a WebRTC video conference. Based on the thorough WebRTC analysis including related work which some of WebRTC’s pitfalls, a test bed is set up to conduct a comprehensive performance analysis of WebRTC using the latest browsers, for different scenarios, while being subject to different network effects. The effects of additional latency, packet loss and limited bandwidth are tested. The effects of cross traffic, multi-party, WebRTC on mobile devices, different browsers and different video codecs are furthermore analyzed. This performance evaluation verifies that results shown in earlier research no longer hold due to the improved GCC algorithm. Results however do show that there is room for improvement since inter-protocol fairness is not ideal and WebRTC streams have a higher priority than competing TCP flows. It also shows the difference in WebRTC’s performance for different internet browsers and mobile devices. Also the newly added support for the video codecs VP9 and H.264 are analyzed which do not perform as expected and need to improve.

Files