Hey hey. Do you know what is the next most wanted feature each web video chat application desires after delivering generic video chat? Yes, it is the subject of this article – recording. There are numerous purposes of why video conferences need to be recorded. A common case for video chat is to be a video consultation service, where information gained during the chat session should be persisted for later look by a buyer. Then the buyer receives consultation as a real-time video chat and its recording. Let’s list business areas where recordings might be applicable:
- Telemedicine where recording can be accessed by patient;
- E-learning where students view past lectures;
- Webinar about specific goods presentation for repeated playback;
- Online live events recording.
Possible solutions to implement conference recording
Using a local softwareSo how could one record a video call? First thing most people come up with is using a local screen recording software. There are numerous options and you know this approach works at the end. However, this way will not fit all users as they might not be experts in using computers. This way requires a 3rd party software installation and configuration. Hence there are many factors to make the operation successful.
- A recording process requires a decent part of CPU and memory to operate. Otherwise, there would be gaps and freezes;
- A device from which the user works on, is not always reliable. The user’s machine could crash/hang and that is unacceptable as recording will be interrupted/wasted.
- Last but still actual, a user should not forget to click on the “Start recording” button.
Using a server-side recording. Solution #1Now we have a second possible approach, running a recording process on a server-side. How does it work? When the recorder was running locally – it was viewing the same screen as the user did. Here we need to emulate the user environment on a server-side. Hence a browser will also be launched on a server and join a video conference as an invisible user. For users it is simply pressing the “Start recording” button or going further, each call can be configured to be recorded automatically. Behind the scene, it works in the same way as local recording works but in an automated way on a server. Shortly video conferencing service launches a machine with a browser that joins a hidden user which grabs the screen of a conference and records content to a file. In our team, we use opensource Jibri https://github.com/jitsi/jibri to implement recording on a server-side.
Using a server-side recording. Solution #2Running a browser on a server could be too excessive if the conference doesn’t have a fancy look and layout. If there is a need to concatenate 2 web cameras side by side, we can use simple tools for this. Either plain FFMPEG or a media server that is capable of doing that.
Advancing in conference recording feature
RestreamThe next level of a conference recording is a sharing conference with an audience on Youtube, Facebook, Twitch, and other live video sites. To achieve that we still can utilize the same server recorder.
Overlays over the video streamAs a content owner, you might want to put a watermark on top of your stream. This is something media servers such as Red5Pro, Wowza provide. In the infrastructure we built, it is easy to add a static image over a video stream as well. With a few steps forward, we can add animated images as well. Well, anything that can be rendered in the browser could be packaged inside a video feed.
ConclusionThe takeaways from this article are:
- Conference recording is a complex feature but it could put your app above competitors;
- Prefer a server-side recording as it is more reliable than a local one;
- There is still space for more features to propose for your users: restream, overlays.
- With re-stream, you could deliver your video app content to a much larger audience on Youtube or Facebook.