Review: Ant Media Server (Enterprise Edition)
This review will highlight Ant Media Server and many of the features supported with the streaming server. Viewers will also learn how to configure the WebRTC streaming server on Amazon Web Services and how to get up and running with delivering live streams and video-on-demand streams.
About Ant Media Server (Enterprise Edition)
The Ant Media Server is a streaming server designed to deliver and simplify live, ultra-low-latency one-to-many WebRTC streaming, with support for VOD as well.
There are two versions of Ant Media Server that users can install on their platforms. The first is a free Community Edition that includes RTMP, RTSP, MP4, HLS support, IP Camera support, the ability to re-stream remote streams, and many other features. The paid Enterprise Edition version adds support for VP8 and H.265, SRT ingest, CMAF, 360-degree live and VOD streams, scaling, RTMP ingest-to-WebRTC playback, and many other features.
There are numerous methods for accessing Ant Media Server and running it in the cloud. The company works with numerous cloud providers to give users access to their streaming server. Ant Media Server is available on Azure, Amazon Web Services, Google Cloud, Digital Ocean, OVH, Linode, and Alibaba Cloud. For testing in this review, I’ll be using Amazon Web Services to host my Ant Media Server.
Setup and Configuration
To get started with the Ant Media Server (Enterprise Edition), first you need to subscribe to it through the Amazon Marketplace. You’ll also need to subscribe to Amazon’s EC2 service.
Once you’ve subscribed to EC2, you can launch an instance of Ant Media Server on Amazon Web Services. You’ll do this by clicking the Continue to Subscribe button on the Ant Media Server (Enterprise Edition) subscription page in Amazon Marketplace. On the next page that appears, click Continue to Configuration.
Figure 1. Subscribing to Ant Media Server via Amazon Web Services
Select the latest version of the software under Software Version (In my case, I selected v2.6.2). For region, select the closest region to you. Then, click Continue to Launch.
Keep Launch from Website selected, and choose C5.xlarge as the EC2 Instance Type (Figure 2). You can leave VPC Settings and Subnet Settings at the default.
Figure 2. Selecting EC2 Instance Type and other settings
Under Security Group Settings, click the button for Create New Based on Seller Settings. Add a name for your security group and provide a short description. All of the ports listed are necessary when using Ant Media Server.
Next, click the Create Key Pair in EC2 button, and give it a name (Figure 3). Once you add a name, click the Create Key Pair button. The file will be downloaded to your computer. Keep the file in a safe place.
Figure 3. Launching an EC2 instance
Now, return to the previous Launch page. Select the key pair you created and click the Launch button. Your new Ant Media Server instance should launch and be available shortly.
Once the instance is ready for use, copy the Public IP from your EC2 instance and place it in your browser. Add port 5080 to the end. The Ant Media Server log-in page should appear. Log in using JamesBond for the user and the EC2 instance ID for Ant Media Server as your password.
Figure 4. Logging into Ant Media Server
Installing an SSL Certificate
You’ll need to perform some additional steps to install an SSL certificate for use with your Ant Media Server. First, connect to the EC2 Linux instance via an SSH client or the Terminal. Second, create a record for your domain in Route 53 to route traffic to your Ant Media Server instance IP address. Third, install your SSL certificate using the Terminal.
Rather than go through all the steps here, I refer you to the video AWS Marketplace Quick Start Guide – Ant Media, which you can find at go2sm.com/antmedia. Start at the 4-minute mark.
Using Ant Media Server
Once SSL is installed on your Ant Media Server, you can log in using your domain and start using Ant Media Server.
Figure 5. Viewing the Dashboard
You’ll see the Dashboard as soon as you log in. On the main Dashboard page, users can view System Information, Active Streams, Access to Settings, Logs, and access to the Applications section.
Publishing and Playing a WebRTC Stream
With very little configuration, you can publish and play a WebRTC stream. First make sure your Ant Media Server is up and running, and you have a web cam running on your computer. Next, type the following URL into a web browser using your domain:
A window should appear with your video. Click the Start Publishing button on the page that appears (Figure 6).
Figure 6. Start publishing a WebRTC stream
The status will change to Publishing under your video. Once publishing starts, feedback on bitrate, packet loss and other items should appear. Click the Play with WebRTC button to play the stream (Figure 7). Playback will start in a new window.
Figure 7. Click Play with WebRTC
You can upload a video in Ant Media’s Dashboard Web UI. To do so, navigate to your application and select the Upload VoD tab. Next, click the Upload VoD button. In the dialog that opens (Figure 8), click Choose File, browse to your video, and click Save. You can play the video in the Dashboard by clicking the player icon to the right of the video.
Figure 8. Uploading videos for on-demand streaming
Figure 9. Creating a live stream on Ant Media Server
First, copy the Publish URL for the new stream and paste it into a Word document or Note on your computer. You’ll find the Publish URL to the far right of the stream name in Dashboard.
This formatting for the Publish URL is as follows:
Publishing the Stream
For testing the stream, we’ll use Wirecast (although this process would work similarly in vMix or OBS or any comparable application). To begin, open Wirecast and navigate to the Output Settings dialog (Figure 10). Choose Add and select RTMP server. Select the 720p30 x264 preset or another H.264 preset you’d like. Now, copy the publish URL you saved earlier and paste it into the Address box of your encoding settings. Leave the entire string through LiveApp in the Address box and copy the Stream ID (the items with all the characters) into the Stream text box for Wirecast. Click OK.
Figure 10. Publishing a live stream in Wirecast
Launch the stream by navigating to Output Start/Stop Broadcasting and choose the stream you created.
You can view the status of the live stream by navigating to the Live Streams section of your application (Figure 11). The stream name is “sample3.”
Figure 11. View streaming status in Ant Media Server
To view the stream, you can format it like so for HLS:
You should be able to paste this URL into Chrome, Safari, or other browsers to see it play. I used Chrome and Safari for my testing (Figure 12) and two third-party stream-test players from THEO (go2sm.com/theotest) and Bitmovin (go2sm.com/bitmovin).
Figure 12. Testing the stream
Ant Media Server can also perform live transcoding of live streams on the server. Users can add their adaptive bitrates in the settings tab of their application (Figure 13).
Figure 13. Configuring live transcoding in Ant Media Server
Once added, transcoding will be used on the live streams for that application. When adding bitrates for transcoding, the options are limited. Users can only add resolution, video bitrate, audio bit rate, and frame rate.
Here’s how I tested Ant Media Server. First, I was interested in determining how Ant Media Server could be used for streaming delivery in a university in a setting like The Ohio State University. There is often a need to deliver video on-demand streaming and live streaming. Being able to provide adaptive streaming is also important to support on mobile devices, tablets, and computers. Lecture capture of live streaming for VOD playback is always important on college campuses, and Ohio State is no exception.
For this review, I tested live streaming, playback of WebRTC, on-demand streaming, native video playback of streams in web browsers, playback of streams using third-party players, and transcoding for adaptive streaming.
For VOD streaming with Ant Media, uploading videos was easy and straightforward. However, users can upload only one video at a time using the Dashboard Web UI. It would be great to be able to perform bulk uploads as well. For video uploads, I was able to upload only MP4 files. I received an error message when I attempted to upload WebM files. The issue was a small bug in the 2.6.2 version I tested; Ant Media tells me they have fixed the bug in v2.6.3.
Once videos are uploaded, users can easily play videos from Web UI within Ant Media Server. One limitation I discovered with VOD streaming is I could stream only single-data rate streams. It would be great to be able to deliver VOD adaptive streams.
The live streaming features are more developed with Ant Media Server as adaptive streaming is possible with live streaming, and live transcoding of live streams is also available. Additionally, the ability to create streams on the server and publish them with a live encoder works reliably.
WebRTC publishing and playback was easy to perform and doesn’t require a lot of setup for users. Those using WebRTC will appreciate this. WebRTC streams worked great in all browsers tested.
Playing videos in third-party players with Ant Media Server streams is also possible, but it takes a little more work. It was easy to play WebRTC streams in Web browsers without third-party players. Third-party players worked great for me using HLS, but I couldn’t get my DASH streams to play. It’s likely that I could have had a setting wrong that impacted playback.
I didn’t notice an option for including captions with Ant Media Server streams. Within a university setting, this is an important need to ensure that all video content is accessible for all viewers. Having an option to include captions from third-party vendors within the Dashboard would be helpful.
I also tested setting up an autoscaling cluster with Ant Media Server Scaling Solution with AWS CloudFormation. The autoscaling cluster allows users to create a cluster that scales up and down based on the current streaming need. The autoscaling cluster includes a Mongo database, a load balancer, an origin, and an edge group.
After some initial setup challenges with AWS Certificate Manager, I succeeded in configuring the Ant Media Server Scaling Solution with AWS CloudFormation. Being able to create a cluster is a promising feature as it saves users a significant amount of time by creating all the items in the cluster in a matter of minutes. It also easily removes all elements in the cluster as well.
Here are two YouTube video tutorials that will help you with configuring the autoscaling cluster:
- Setting up an Ant Media Server Scaling Solution with CloudFormation In 5 minutes: go2sm.com/scaling setup
- Using the Amazon Certificate Manager to Issue an SSL Certification: go2sm.com/ssl
For my last thought, I do appreciate Ant Media Server having a Dashboard that makes setup easy, although it would be nice to have a restart button in the Dashboard. This would help tremendously with configuration changes when a server restart is required.
CodecWar is an analysis service created by ViCueSoft, the developer of codec analysis tools VQ Analyzer, VQ DVK, and VQ Probe. As currently configured, the site's ideal users are researchers who are looking for a convenient way to compare codecs using relevant datasets and codec developers who are looking for a structured way to benchmark their codecs against others. In contrast, it's not a particularly convenient way for streaming producers to run experiments to optimise their encoding parameters, although it could grow into this.
Companies and Suppliers Mentioned