Distance Education: Delivering Video Without Delay
May 20, 2020
Now that schools and universities have switched to online distance learning, it’s become apparent that not everyone is ready for this. Teachers trying to contact a whole classroom of students via Skype or Zoom, where there is a huge load on servers, often run into a large number of delays, interferences, and setbacks. How smoothly the lesson will go depends on how good the participant’s internet connection is. If students have a poor Internet connection, it will only affect them. If the teacher has a poor internet connection, the whole class will have problems.
How can a teacher get around video delays, even if the quality of the internet in their house leaves much to be desired? The best way would be to organize a low latency video signal delivery. The WebRTC (Web Real Time Communications) video transfer protocol is perfect for this.
There are three ways to transfer data: unicast (from one host to another), multicast (from one host to a limited group of hosts), and broadcast (from one host to all hosts on the network). Initially, the WebRTC protocol was created specifically for unicast, that is, for communication between two users. In such a setup, a teacher’s webcam can transmit a 2 Mbps signal to one student, and this fits into the capabilities of a standard camera. But if the teacher needs to transmit a 2 Mbps signal to twenty students, the problems arise: not everyone has such a high-quality and fast connection. What to do about this?
Organizing Multicast Delivery Using WebRTC
The difficulty with building scalable unicast streaming is that the video source cannot establish a direct connection to each peer - it simply does not have enough bandwidth and CPU power to support such a number of connections. We implemented video delivery using the WebRTC protocol, in which it is possible to send a signal from the teacher’s camera not directly to the students, but to the cloud server, which will deal with the subsequent distribution of the signal.
By default, the server will have a better and more stable internet connection. In addition, it is possible to connect a whole cluster of servers located in different countries, if we are talking about students from different countries.
In addition, we have implemented a number of interesting features. If the channel is unstable, the camera may be commanded to lower the bitrate. And you can reduce it as much as you like - so we adjust in real-time to the width of the channel we need. In exactly the same way, we can increase the bitrate, and all of this happens very smoothly.
We are working on a similar system for the recipient: transcoding into three profiles in the cloud. This will enable students to change the quality of the signal received from the teacher, but in three profiles - low, medium, and high quality. Thus, students with even the weakest internet connection can receive video from the teacher with the lowest possible delay, even if the quality of the video suffers. Under certain conditions, it is possible to achieve a delay of 500ms from capturing a frame at the source to rendering it on the receiver’s screen.
Even if the signal disappears for some time, this will not affect the continuity of the broadcast. Thanks to the cloud, we have the ability to save small video clips of 10-15 seconds in temporary storage. Later it will become possible to record the lesson and upload the received videos. From there, the teacher will be able to make a finished lecture for subsequent use.
How to Create Your Own Distance Education Platform
The main advantage of WebRTC over other protocols is that in order to start broadcasting a video through a browser, you do not need to install any additional drivers or utilities. The teacher simply opens the browser and starts broadcasting to the class.
To organize a full-fledged platform for distance education, you need more than just a browser. You need an intuitive interface in which students can raise their hands, leave a comment, pause the video, or enable rewind (for example, if they are late for a lesson). Such a platform can be assembled from different open source components, but this will greatly increase the complexity of the product and its support.
The optimal and high-quality option is a batch solution for storing, delivering, and transcoding video. Such a solution could be our Flussonic Media Server. It would still be necessary to add additional functions, to assemble an intuitive interface, but this is already much simpler and more effective than assembling all components from scratch.
Thus, we make WebRTC, the standard video delivery protocol, our reliable tool. And teachers and students can get a reliable and convenient communication channel where they don’t have to worry about the poor quality of their internet connection and possible delays and setbacks in the signal.