Dynamic Video Bitrate Adaptation for WebRTC-Based Remote Teaching Applications Stefano Petrangeli * , Dries Pauwels * , Jeroen van der Hooft * , J¨ urgen Slowack † , Tim Wauters * , Filip De Turck * * Ghent University - imec, IDLab, Department of Information Technology Technologiepark-Zwijnaarde 15, B-9052 Ghent, Belgium, email: stefano.petrangeli@ugent.be † Barco N.V. – Technology Center, B-8500, Kortrijk, Belgium Abstract—Remote teaching applications are common nowa- days. Very often, these applications resemble video-on-demand streaming platforms rather than real virtual classrooms, where a group of students (the receivers) can remotely attend a live lecture held by a lecturer (the sender). To better support this live scenario, Real-Time Communication (RTC) solutions can be used. WebRTC is an open-source project for real-time browser- based conferencing, developed with a peer-to-peer architecture in mind. To use WebRTC, each receiver requires a dedicated encoder at sender-side. Using such approach is expensive in terms of encoders, and does not scale well for a large number of users. To overcome this issue, a WebRTC-compliant framework is proposed, where only a limited number of encoders are used. A centralized node, the conference controller, dynamically forwards the most suitable stream to the receivers, based on their bandwidth conditions. Moreover, the controller dynamically recomputes the encoding bitrates of the sender. This approach allows to closely follow the long-term bandwidth variations of the receivers, even with a limited number of encoders at sender- side. To evaluate the performance of the proposed framework in a realistic environment, a testbed has been implemented using the Chrome browser and the open-source Jitsi-Videobridge. In a scenario with 10 receivers and 3 encoders, and under realistic network conditions, the proposed framework improves the received video bitrate up to 11%, compared to a static solution where the encoding bitrates do not change over time. I. I NTRODUCTION Video streaming is everywhere and has radically changed the way we spend our free time and interact among each other. Not only is streaming used for pure entertainment, it also plays a fundamental role in making knowledge accessible to everyone on the globe. For example, Coursera and Udacity are among the most famous websites to stream high-quality online courses [1]. Despite that, current remote teaching platforms are actually closer to traditional video-on-demand platforms. In a real virtual classroom scenario, the students (or receivers) are remotely attending a live lecture given by the lecturer (the sender). The receivers are usually geographically dis- tributed and can experience different bandwidth and network conditions. Remote conferencing solutions can be used to implement such a live scenario, which is usually characterized by a high degree of interactivity [2]. Particularly, the Web Real-Time Communication (WebRTC) framework is an open- source project started by Google in 2011 that provides plugin- free real-time communication capabilities to browser-based applications [3]. The WebRTC framework has been developed with a peer-to-peer architecture in mind, where a small group Fig. 1: The conference controller is the terminal endpoint for both the sender and the receivers, and performs the dynamic stream forwarding and dynamic bitrate recomputation tasks. of clients can directly communicate with each other. This approach can suffer from scalability issues when multiple participants are present at the same time, as in the virtual classroom scenario. In such a peer-to-peer architecture, the WebRTC sender would need to encode a separate stream for each of the WebRTC receivers attending the virtual classroom. In light of the above, we propose a WebRTC-compliant framework to support the delivery of real-time communication streams in a remote teaching scenario (see Figure 1). In this framework, the WebRTC sender only needs to encode a limited number of streams, much smaller than the number of receivers, at different bitrates. This approach allows to overcome the aforementioned limitation, where each receiver would need to be associated to an independent, dedicated encoder. In our framework instead, multiple receivers are assigned to the same encoder at sender-side. A centralized node, called the conference controller, is aware of the bandwidth conditions of the WebRTC receivers and dynamically forwards the stream at the best bitrate in order to follow the bandwidth variations of the receivers. Besides this dynamic stream forwarding, the conference controller has another fundamental task. Instead of keeping the encoding bitrates of the sender fixed to predefined static values, the conference controller can dynamically and periodically recompute them based on the changing bandwidth conditions of the receivers. This approach allows to better follow the bandwidth conditions of the receivers, even though only a limited number of encoders is actually used. In the WebRTC domain, the conference controller functionalities can be easily carried out by a Selective Forwarding Unit (SFU), whose task is to receive all the streams and decide which