Ant Media Server v2.5: Easy Video Conferencing, Redis & Cluster-Friendly Stream Manipulation — Ant Media Server
Here is the Ant Media Server v2.5. In this version, there are improvements for Video Conferencing. In short, you can have hundreds of users in the conference call in a very performance-efficient way for the browser and server-side. Moreover, there is a conference application that you can deploy to your Ant Media Servers.
In addition, Redis support is introduced for both standalone and cluster modes so that you can use any Redis service to store your records in a fast and reliable way. We have also some good features that make life easier for developers. Before giving more details about these features, let me tell the purpose of Ant Media and exciting news for the developer ecosystem.
The Goal is “Streaming Engine of The World” but What’s the Purpose?
We are running after our dream to be the Streaming Engine of The World. So we’re listening to you and we’re improving the Ant Media Server according to your feedback. Our goodwill and win-win approach for the community, users, and partners let us have thousands of Ant Media Server instances daily worldwide.
Our purpose is to take part in building an interconnected world so that people have better communication experiences with each other no matter physically they are. The deeper purpose of Ant Media is to show that “you can do it”. In other words, to show that if people behave proactively to take action in their impact area, they will have a positive impact on themselves, the people around and people far away so that they contribute to making the world better no matter where they are and no matter who they are.
Join the Journey and Be part of it
The first Real-Time Streaming Hackathon(RTSH) just ended last weekend and incredible projects were completed by amazing teams. This hackathon was just the beginning, its sequel and many more events will come. Stay tuned. 🙂 Let’s dive into this magnificent journey and learn more about 9 applications that have been developed during RTSH. You can read the story of the Real-Time Streaming Hackathon here.
If you have application or plugin ideas, you don’t have to wait for the next hackathon. You can monetize your ideas in the AMS Marketplace which will be available next year. Also if you want to find teammates for your project please subscribe to the AMS community.
Here is the first application, PortMeet, which is a free and open-source video conferencing solution for your business.
PortMeet: Easy Video Conferencing for your Business
Here is the first application that you can deploy to the Ant Media Server with just a few clicks. PortMeet is a free and open-source video conferencing solution that can run on the cloud or on-prem. So that it’s a perfect fit for enterprises/corporates/institutions that need a quick and easy video conferencing solution. Moreover, you can use PortMeet as a base for your product, and customize and add new features to it. Here is the GitHub repo for PortMeet.
How to Deploy PortMeet to Ant Media Server
1. Download the PortMeet from Nexus Repository Manager. PortMeet is automatically deployed to sonatype for each iteration. After you open/visit the PortMeet on Nexus Repository Manager, click the “Download” as shown in the image below to get the WAR file. (PS: Artifact will likely change to PortMeet).
2. Open the Ant Media Server Web panel Visit the Dashboard as below and Click the “New Application” button which is in a blue rectangle in the image below
3. Give any name(MyPortMeet) to your application and choose the WAR file that you have just downloaded in step 1 and click the “Create” button. After that, it’ll be deployed to your Ant Media Server
Here we go. Your conferencing solution is ready. Just visit your application URL by a https://YOUR_SERVER_FQDN:5443/MyPortMeet/ to create your first room. Additionally, you can create a room by appending name to the URL. For instance, https://YOUR_SERVER_FQDN:5443/MyPortMeet/mekya/ is my personal room. Share your room link with your colleagues to let them join the call.
Easy Video Conferencing for your Business
As you see creating a room, and joining a room are very simple. It does not force you to create an account, fill the form, etc. This is why it’s an Easy Video Conferencing for your Business.
Lastly, PortMeet can work in Enterprise Edition which has support for video conferencing.
Use Redis for Ant Media Server
Redis is an open-source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. So Ant Media Server supports 3 databases which are MapDB, a simple database engine that works only in standalone mode, MongoDB, and Redis. You can use MongoDB and Redis both in standalone mode and cluster mode.
Why support Redis?
Firstly, Redis delivers sub-millisecond response times, enabling millions of requests per second for real-time applications. It means that it improves the Ant Media Server performance for database operations for cluster and multi-level cluster deployments.
Secondly, there are good number of managed services for Redis in cloud providers. For instance, AWS has MemoryDB for Redis and ElasticCache for Redis, Azure has Azure Cache for Redis, etc.
How to use Redis in Ant Media Server?
There are basically two ways to change the database and server mode in Ant Media Server.
1. Using the change_server_mode.sh which is in the installation directory (/usr/local/antmedia). This method is recommended when you’re running Ant Media Server as a service
Type the following command to use Redis in standalone mode
sudo ./change_server_mode.sh standalone redis://[username:password@]host1:port1]\
Use Redis in cluster mode by running this command
sudo ./change_server_mode.sh cluster redis://[username:password@]host1:port1]\
2. Using start.sh script which is also in the installation directory and this method is recommended when you’re running Ant Media Server in kubernetes or container.
Start the server with Redis support in standalone mode
./start.sh -m standalone -h redis://[username:password@]host1:port1]\
Start the server with Redis support in Cluster mode
./start.sh -m cluster -h redis://[username:password@]host1:port1]\
Additionally, you can use mongodb://[username:password@]host1[:port1] or mongodb+srv://[username:password@]host1[:port1] URL to use MongoDB in your deployments.
Make MCU and Filters Cluster-Friendly
Support for Manipulating and Merging streams on the Ant Media Server has been added in earlier versions so that you can composite multiple streams in different layouts. It has use cases in video conferencing and custom stream manipulations. To remember these things, please visit the Audio/Video Manipulation with Filter Plugin and Merge/Mix Streams into a Single Stream.
However, there was a problem with running the filters in the cluster. All the streams that are going to be manipulated should be in the same origin otherwise FilterPlugin cannot manipulate them. So developers should forward the requests to the same origin which is not an easy task all the time and it’s not very feasible.
With v2.5, no need to worry about that. If a filter needs to have a stream that is not already available in that node, FilterPlugin finds and pulls the streams from the related node and runs all the manipulations very easily.
Switching to OpenH264 & Improving Stability
Ant Media Server v2.5 has switched to use OpenH264 as a software encoder by default from x264. Furthermore, x264 is not linked in the build. If you need to use x264, please visit this StackOverflow question to get the instructions.
For other issues that are resolved in Ant Media Server, please take a look at the changelog on GitHub.
Weekly Ant Media Community Hours
Ask your questions to AMS developers during Community Hours every Thursday at 3 pm (GMT +3). Anyone can join and ask any questions. For further information, visit community.antmedia.io
Originally published at https://antmedia.io on November 28, 2022.