How to Create a Video Conference Solution with Ant Media Server

Ant Media Server has a built-in video conference feature that is already used by lots of users. Nowadays we get some questions about extending that built-in video conference solution with new features. However, this built-in video conference solution is hard to extend by users because its source code is distributed in Ant Media Server module projects. So, we created an extendible Conference Application Project. In this post, we will introduce that Conference App.

Conference App

Conference App is an SFU type multiparty WebRTC application. It is developed as a web application that can be deployed on Ant Media Server. Conference App can be used on a standalone Ant Media Server or on an Ant Media Server Cluster so that it can be also scaled with Ant Media Server. That means it can handle conference rooms with a large number of participants.

Conference App Project is also an open-source project. Here is the GitHub repository for Conference App Project.

This project depends only on other Ant Media Server projects with maven dependency. So, it can be built alone. This makes the users free to add new features to their conference application without modifying other Ant Media Server projects.

Features

Conference App has basic features for a conference solution. However, it is not a final product but it is a sample project as a basis for featured conference projects over Ant Media Server. You can add easily new features (like raise hand, enable/disable user video/audio, chat, etc.) by extending Web Socket API or REST API.

Room Management

Conference App uses Ant Media Server as a low latency WebRTC streaming server. Ant Media Server is responsible for WebRTC publishing and playing participants’ video/audio streams. Conference App makes orchestration of streams in a room. Participants are connected to a room through the Conference App by WebSocket messaging. But they publish their streams to Ant Media Server and play others’ streams from Ant Media Server. The following chart shows the message sequence.

WebSocket API

Conference WebSocket API has some core room management messages as a sample. These are a basis for a conference APP. You can extend API with new messages.

Rest API

Conference App has a REST API to control it. This REST API has some basic REST messages as a sample. You can extend the REST API with new messages to improve your conference project.

Configuration

Settings are stored and used similar to other Ant Media Server built-in Applications. Conference App has also a settings file. You can configure your Applications with that settings file. Furthermore, you can add new configuration parameters to improve your Application.

DataStore

Conference App has its own data store for storing data. This data store is a mapdb data store that is also used in other Ant Media Server built-in Applications. You can also extend your data store depending on your application’s needs.

Text Messaging & File transfer

Ant Media Server provides a realtime data transfer opportunity using WebRTC data channels. You can add your application text messaging or file transfer features with that Ant Media Server opportunity.

Benefits From Ant Media Server

Since Conference App uses Ant Media Server and WebRTC it can also benefit from Ant Media Server features such as screen sharing, video, and audio transfer, adaptive bitrate, scalability.

Security

Ant Media Server has its own stream security mechanisms as documented here. In your Conference App, you can directly use those stream security mechanisms. Besides, you can add container provided filters or your own custom filters on your web application for security purposes.

Extending the Conference App

Conference App doesn’t have only the features mentioned above, but has also lots of extension points to create a final application. Since it is an open-source project you can fork the project from GitHub repository, extend it, and create your own application.
We will be glad if you create a featured open-source application and share it with the Ant Media Server community.

--

--

--

Ant Media Server, open source software, supports publishing live streams with WebRTC and RTMP. It supports HLS(HTTP Live Streaming) and MP4 as well.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

How to Create a simple Portfolio in Github

Creating A Cooldown System in Unity

L is for Large

Serve an Image from an S3 Bucket via CloudFront

SessionStack brings in blazing-fast streaming of live user sessions & much more

Is your online store ready for stay-at-home holidays?

Why start hyper? (Unintended Technical Debt)

Automated deployment of Kubernetes on 15 Raspberry Pis boot in under 8 minutes

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ant Media Server

Ant Media Server

Ant Media Server, open source software, supports publishing live streams with WebRTC and RTMP. It supports HLS(HTTP Live Streaming) and MP4 as well.

More from Medium

Redirection for search crawler bots in CloudFront with Cloud Function (Faster and Cost-effective)

MySQL and WHERE. LIKE condition VS equal (=)

Setting Up Google Maps JavaScript API

An image of a wooden world map with pins on it.

Role of start() and run() in Multithreading in Java