Video Conferencing Apps Development
A European company creating online platforms for digital TV, video streaming, and conferencing. Their solutions are based on WebRTC for Tizen, WebOS, and Android.
To develop a video conferencing software solution and mobile application for smart TVs, STB and desktops to provide a picture-in-picture feature.
1. Concept Development
We developed a concept of a software solution for TV and mobile application to provide a picture-in-picture feature for video conferencing where an Android or iOS smartphone would work as a video camera and a smart TV as an alternative video receiver. Users would be able to choose where to display an actual video: on their TV or smartphone.
2. Software Development
Our engineering team developed software that can be launched on any TV based on WebRTC for Tizen, WebOS, and Android. We used the most popular open software components for our client’s project:
- v4l2 for video capture;
- Gstreamer for coding/decoding;
- OpenGL for screen output;
- AudioRecord for audio input/output;
- WebRTC for video streaming.
As a result, we ensured support for the following platforms:
- Desktops: Linux / Windows / MacOS.
- Set-top boxes: RDK, AOSP, Linux, AndroidTV.
- Mobile: Android, iOS.
- Smart TV: Tizen, WebOS.
- The system looks pretty simple and includes two main parts — the server and a user client app:
Figure 1. Video conferencing system architecture
WebRTC was chosen to transmit audio/video streams between the server and clients. It is an open-source technology with the following advantages:
- low latency
- high level of security;
- cross-platform solution;
- open-source nature.
We used the Kurento media server as our video conferencing server. Kurento is a WebRTC media server and client APIs, making the development of advanced video applications simple.
The Kurento media server features group communications, transcoding, recording, mixing, broadcasting and routing of audiovisual flows. It is written in C/C++, which embeds and extends GStreamer capabilities. Also, it has a modular architecture, which allows the simple adding third-party media processing algorithms. The server supports multiple conference rooms.
We also developed a mobile application which includes two working modes. In both modes, a mobile phone uses its microphone and camera for audio/video capturing. The main difference between these modes is the display and audio output used for incoming audio/video streams. The first option is to use its dynamics and display. The second one is to use a smart TV.
To ensure communication with a smart TV, our engineers used the DIAL protocol (discovery and launch).
The application architecture for both cases is presented in the pictures below:
Figure 2. Mode 1 client architecture
Figure 3. Mode 2 client architecture
The client received a new software product that empowers users with a convenient and effective tool for video conferences with picture-in-picture feature via their TVs and smartphones.
Furthermore, the solution supports multiple platforms, including desktops, mobile, and smart TV, ensuring accessibility to many users. The client plans to incorporate this solution into various software products for business meetings, coach-supported online fitness, and a shared view of video content.