The novel coronavirus has disrupted almost all elements of everyday life, especially education. Many schools are creating a virtual classroom through the use of video calls. Services such as Zoom are very popular, but as we’ve discussed in a previous post, Zoom suffers from security issues which is a big problem. Further at issue is the fact that Zoom was designed as a general-purpose conferencing tool which means it doesn’t have all the necessary features for distance learning.
The question then is how to create a better platform for interactive video distance learning. Virtual classrooms have specific needs beyond just basic video calling so what features do you need to ensure that those needs will be met? Teachers have hard enough jobs already so we should support them as best as possible.
Here’s our list of 9 essential features for interactive video distance learning apps.
First and foremost, the amount of time it takes for the video to travel from the broadcaster to the subscriber (otherwise known as latency) is certainly an important if not the most important feature to look for. Even a small delay will interrupt the natural flow of communication.
Interjecting to ask a clarifying question will be difficult if it takes seconds for the student to hear what the teacher said and conversely for the teacher to then hear what the student said.
Many streaming providers offer solutions that use HTTP based protocols such as HLS which introduce many seconds of latency into live streams, and because of the interactive nature of video distance learning apps, you should rule these out.
A real-time latency of under 500ms is the only way to provide true interactivity. Such low latency will make sure that everything is properly synchronized. Typing a response or asking a question will be properly communicated as it will correspond to what is on the screen. This will minimize any confused backtracking that the teacher would have to make.
Education itself should be accessible to all people thus any distance learning platform needs to be widely accessible as well. More specifically, users should be able to log in from whatever device they are using whether it’s a laptop, tablet, or mobile device.
Ideally, any extra steps such as configuring a native app (like with Zoom) or downloading a plugin should be avoided as well. While setting up an app may not sound like a particularly difficult problem, it can be an issue as the app will need to be configured according to the user’s operating system and specific device setup. This extra level of complexity can be a barrier to entry.
A better way to run the application is to run it directly in the browser through a web app. Maintaining a web app is much easier for your development team since updating is as simple as deploying new code to your website. A web app is also more convenient since the client-side implementation is handled by the browsers which makes it easier to maintain.
However, some browser-based web apps still require the user to perform an additional step and download a plugin. A plugin-free, webapp that runs directly in the browser is the easiest and best functioning solution. Plus browser plugins (the most famous being Flash) are being phased out by all modern browsers.
One ultra low latency solution that works directly in the browser is WebRTC. Based on web standards, WebRTC uses a simple API to connect to the browser. This allows it to work more efficiently and deliver low latency of under 500ms. Solutions that offer WebRTC will be the best choice for interactive video distance learning apps.
Keeping students engaged or at least paying attention can be hard enough when teachers are physically present in the classroom. Moving that class online creates the potential to exacerbate that problem.
To solve this issue, you can configure a method that tracks if a student is paying attention to what the teacher is presenting and that they are still in attendance. Adding an AI monitoring system into the stream itself can check to see if the student is staying in front of their computer rather than just connecting to the live stream and then turning around to watch TV.
It is essential that the software behind your streaming platform be flexible and allow for extensibility like inserting machine learning algorithms. That leads us to the next point.
In addition to adding the ability to monitor a stream, other customization options may be useful as well. Depending upon regulations put in place by government officials education platforms may need a wide range of features so it is important to have a fully customizable solution. Some desired or required features include:
- Screen Sharing
- Visual and audio effects
- VoIP integration
- Integration with other software e.g. web browsers and search engines, social media sites like Facebook and Twitter, Google Docs among others.
Perhaps there are even more specific features that would work better for specific types of educational platforms. One example of a situation like this is the need for music teaching apps to use high fidelity audio so the teacher can properly hear the nuances of the student’s tone. It is essential to have the flexibility to create the custom features necessary to make your application effective.
Part of the attraction for prebuilt platforms such as Zoom, is the fact that they are fully hosted. Not having to worry about your own server infrastructure can be a tempting reason to use them. In reality, a fully hosted solution can cause issues which will greatly overshadow the convenience they offer.
One size fits all back-end configurations don’t always fit. Having full control over your application is very important to ensure that you are not locked in a service trap. If the live streaming application you are using restricts data flow, or changes something about their pricing, that can negatively affect your application. The ability to host to any platform, avoids this service trap issue.
Furthermore, if there is any sensitive information shared over a video call (like in a parent-teacher conference) there may be restrictions about where that data can stored or how it can be sent. With a hosted solution the information would be routed through their servers thus potentially exposing it to a third party. These kinds of privacy and legal concerns will be further addressed in our next point.
With that said, there are occasions where a fully hosted solution will be a good fit. If for example, you are testing things out in an early stage with limited participants the convenience of fully hosted solutions will be a huge advantage. In other words, if you are building a small proof of concept or an MVP (minimal viable product) fully hosted platforms will be your ticket. Just be aware that as you move to later stages you will likely need to change your core technology stack.
Authentication and Security
Security is also very important as you don’t want uninvited people crashing your live stream or leaking sensitive information. When covid first broke out there were widespread reports of unwanted participants joining calls like a Norwegian school who had a naked man hack into their stream. Without a password, a classroom live stream can be accessed by anyone. Security issues led to some schools, including the Clark Country district in Las Vegas, outright banning Zoom.
Self-hosted solutions provide an extra level of security by giving you control regarding the parameters in which the streams are created. Features such as stream encryption and user authentication guard against unwanted intruders. This is a big advantage as you can immediately fix any security gaps that arise rather than waiting on someone else’s tech team to fix the problem for you.
WebRTC has security built right into the spec forcing all streams that use the protocol to be encrypted. This is another reason WebRTC is often a really good fit for interactive distance learning apps.
As mentioned above, students will be logging in from a variety of devices. Smartphones, tablets, and laptops are all devices that need to be supported. That same variety of devices may be used by teachers as well to publish a stream. As such, mobile apps or webapps must be developed to optimize access across all those devices. This includes failover support for older devices that may not support the latest updates.
Web standards-based protocols, such as WebRTC, ensure cross-device compatibility that is up to date with modern standards. WebRTC is supported by Chrome, Firefox, Safari, Edge, and Opera. More importantly, a webapp that uses WebRTC will work in both mobile and desktop browsers.
Some schools, especially colleges and universities, may have students streaming from different places. Thus it is important that students from across the globe be able to participate. Furthermore, a truly interactive video distance learning application should have the same performance regardless of where the student is in order to ensure that they do not get left behind by a slow connection.
Server side streaming infrastructure that can scale and support multiple regions via cloud deployments can quickly become a critical feature for a successful interactive video distance learning application. Red5 Pro’s cloud based auto scaling architecture is one good example of such a setup.
Features such as transcoding and ABR will make sure that the subscribing student is always getting the best quality network according to their connection speed. Transcoding will split the stream into multiple stream qualities while ABR will automatically adjust the clients bitrate in order to provide the smoothest streaming experience. Students should not be punished for poor connectivity.
Ensuring that students are able to receive the best image quality possible is important since a teacher might have to use visual aides to best convey what is being taught. As mentioned earlier, screensharing is useful for displaying charts, slides, or demonstrations, but sometimes concepts need to be drawn out in live action.
There are a variety of learning styles: auditory, experiential and visual. Given that the human brain responds best to visual content, it’s a fair assumption that visual learners make up a very large percentage- though the actual scientific percentage is up for debate.
Thus your app should support the full range of resolution sizes.
Again this is where transcoding and ABR come into play. Transcoding, in particular, allows each student to get the highest resolution possible rather than downgrading the entire stream if other students won’t support higher resolutions such as 1080p. Just as poor connectivity shouldn’t be punished, we should allow those with good connectivity to make the most of it.
Visual information aside, we certainly can’t ignore auditory information. What the teacher is saying helps students follow along with what they are presenting. As such, if a bandwidth issue causes the livestream to miss frames, WebRTC will prioritize sending through the audio frames while dropping the video frames. This keeps the video in synch with what is being said considering that missing words is usually more confusing then missing a gesture.
Dropping the video frames also means that missed frames will not queue up for resending which would cause high latency. This approach is different from HTTP based protocols such as HLS and CMAF.
With all that is happening in the world right now, maintaining some semblance of normality is important. Educating students is not just a part of normal life, but an essential part of a functioning society.
Making sure that those students learn as much as they can is just as important as making sure that teachers maintain their sanity while conducting classes. Thus a platform that works well for all parties involved is essential.
If you are interested in creating a better educational platform we’d love to help you build it. Message firstname.lastname@example.org or schedule a call.