MCU & Filter Plugin

Real-Time Audio/Video Manipulation on server

About

Filter Plugin lets you add filters on the ongoing streams by using REST API and this plugin contains MCU implementation. This plugin is deployed in the Ant Media Server Enterprise version.

Highlights:

The Filter Plugin provides users to perform real-time audio and video manipulation on the server side. With this plugin, you may add filters to ongoing streams using REST API.

The MCU, which allows users to combine video and audio into a single stream for a conference room, is the main application of the filter plugin. Also, this plugin contains MCU implementation, which helps you to merge or mix streams in a single stream in a conference call. You may find more details here in this blog post.

This plugin shipped with Ant Media Server Enterprise version v2.4.0.2 with a built-in filtering feature. So, you’ll need Ant Media Server Enterprise Edition to leverage cpblities of filter plugin.

Getting Started:

Before Starting
You need to have an active Ant Media Server(AMS) license. You can subscribe through AWS and deploy AMS with just one click. Or directly subscribe to a self-hosted license on our website. Please contact us for details

Filter Plugin Usage
In order to use filters, you’ll need to enable Adaptive Bitrate and add at least one adaptive setting to your Ant Media Management Panel. The POST method /v2/filters/create will create a filter.

You should pass the filter configuration in JSON format and here is the parameters your JSON should contains:

  • inputStreams: list of the streams that will be used in the filter
  • outputStreams: stream id of the output(filtered) stream
  • videoFilter: video filter definition, define inputs as [in0], [in1] …
  • audioFilter: audio filter definition, define inputs as [out0], [out1] …
  • videoEnabled: true if video will be filtered
  • audioenabled: true if video will be filtered

Example API Call: You can apply a vertical flip filter to video and copy the filter to audio with the following REST method call:

curl -i -X POST -H "Accept: Application/json" -H "Content-Type: application/json" "http://localhost:5080/WebRTCAppEE/rest/v2/filters/create" -d '{"inputStreams":["stream1","stream2"],"outputStreams":["test"],"videoFilter":"[in0]copy[out0]","audioFilter":"[in1]acopy[out0]","videoEnabled":"true","audioEnabled":"true"}'

Here we tried merging stream1‘s video with stream2‘s audio into a new stream test.

How to Use Filter Plugin (or, Build Filter Plugin)

To build Filter Plugin you will need first clone and build ant-media-server-parent project.

You can build it with the following maven command:

mvn clean install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -Dgpg.skip=true

After building the parent project you can build filter project with the same maven command:

mvn clean install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -Dgpg.skip=true

Once,followed above steps. You will get the new ant-media-filter-plugin.jar file in the target folder and copy it into /usr/local/antmedia/plugins directory.

MCU Usage

Step 1. Add an adaptive setting

You should add at least one adaptive setting from Ant Media Server Management Panel to use the MCU feature as in the following screenshot.

Screenshot 2023 05 09 at 10.18.54

Step 2. Open the conference page

You should open the conference page provided with Ant Media Server installation. You can access it from this URL:

https://YOUR_DOMAIN:5443/WebRTCAppEE/conference.html

After opening the conference page don’t forget to enable MCU. Then enter the room name and click join.

Screenshot 2023 05 09 at 10.20.24

Step 3. Wait for the other users

Other users should connect the same room as in Step 2. After they join to the room, you will see the players for them in the conference page.

Screenshot 2023 05 09 at 10.21.12

Step 4. Working with the mixed broadcast

Since we enabled the MCU in Step 2, a new broadcast (the Mixed Broadcast) is created by the server with the stream Id which is the same as the room name. This broadcast contains the all video and audio of the streams in the conference room. You can see it on the Live Stream List in Management Panel.

Screenshot 2023 05 09 at 10.22.06

You can play that stream with Ant Media Server Player from the following URL:

https://YOUR_DOMAIN:5443/WebRTCAppEE/play.html?id=YOUR_ROOM_NAME

Screenshot 2023 05 09 at 10.23.03

Support
Our engineers will be available for you. Please contact us if you need technical help. Also, we have some support package offerings here.

filter plugin for marketplace

Screenshots

Real-Time Audio/Video Manipulation on server