Skip to content

Commit 826c6f7

Browse files
Merge pull request #610 from ant-media/dev-guides-589
Developer Guide 589
2 parents c5f1424 + 8b90337 commit 826c6f7

18 files changed

+302
-122
lines changed

docs/guides/developing-antmedia-server/building-ams-from-source-code.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ sidebar_position: 12
1212
A couple of common repos should be cloned and built with Maven.
1313

1414
* Go to a directory where you will clone repos
15-
* Clone and build ant-media-server-parent
15+
* Clone and build `ant-media-server-parent`
1616

1717
```bash
1818
$ git clone https://github.com/ant-media/ant-media-server-parent.git
@@ -53,7 +53,7 @@ A couple of common repos should be cloned and built with Maven.
5353

5454
### Building Enterprise Edition
5555

56-
* Clone, build Ant-Media-Server
56+
* Clone and build Ant-Media-Server
5757
```bash
5858
$ git clone https://github.com/ant-media/Ant-Media-Server.git
5959
$ cd Ant-Media-Server
@@ -96,4 +96,6 @@ A couple of common repos should be cloned and built with Maven.
9696
$ ./repackage_enterprise.sh
9797
```
9898

99-
If everything goes well, a new packaged Ant Media Server (ant-media-server-x.x.x.zip) file will be created in the Ant-Media-Server/target directory.
99+
## Congratulations!
100+
101+
If all steps are completed successfully, a new packaged Ant Media Server (ant-media-server-x.x.x.zip) will be available in the `Ant-Media-Server/target` directory. You can now deploy, test, or contribute to the server, explore the source code, and extend its functionality. Your development environment is ready, and you’re all set to dive into AMS customization and feature enhancements!

docs/guides/developing-antmedia-server/circle-component-usage.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,10 @@ sidebar_position: 5
77

88
# Circle App Component Usage
99

10-
[Circle](https://github.com/ant-media/conference-call-application) is a self-hosted, open source video conferencing solution built by Ant Media that can be deployed anywhere.
11-
12-
Locally or in the cloud. It delivers high quality video with ultra-low latency and supports up to 200 participants per room. If you're concerned about **privacy** or operating behind a **firewall**, this is the ideal solution.
10+
[Circle](https://github.com/ant-media/conference-call-application) is a self-hosted, open source video conferencing solution built by Ant Media that can be deployed anywhere—locally or in the cloud. It delivers high-quality video with ultra-low latency and supports up to 200 participants per room. If you're concerned about **privacy** or operating behind a **firewall**, this is the ideal solution.
1311

1412
This guide shows you how to integrate Circle's frontend component into your existing web application, allowing you to embed a complete video conferencing interface directly into your webpage so users can join conferences without leaving your app.
1513

16-
1714
## Prerequisites
1815

1916
- **Ant Media Enterprise Edition**
@@ -23,11 +20,13 @@ This guide shows you how to integrate Circle's frontend component into your exis
2320
## Integration Steps
2421

2522
1. Clone the [conference-call-application](https://github.com/ant-media/conference-call-application) repository:
23+
2624
```bash
2725
git clone https://github.com/ant-media/conference-call-application.git
2826
```
2927

3028
2. Navigate to the react directory and install dependencies:
29+
3130
```bash
3231
cd conference-call-application/react
3332
npm install --legacy-peer-deps
@@ -64,4 +63,6 @@ This guide shows you how to integrate Circle's frontend component into your exis
6463
- Replace `<port>` with your server port (typically 5443 for HTTPS)
6564
- Replace `<application_name>` with your application name
6665

67-
That's it! The Circle conference component will now render within your application, allowing users to join video conferences directly from your webpage.
66+
### Congratulations!
67+
68+
The Circle conference component is now successfully embedded in your web application. Users can join video conferences directly from your webpage, and you can customize the component’s appearance and behavior as needed. Your application is now ready for seamless, low-latency video collaboration.

docs/guides/developing-antmedia-server/create-new-application.md

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,33 @@ sidebar_position: 1
1010

1111
Ant Media Server supports dynamic application development, effectively addressing the multi-tenancy challenges of online video platforms. With three built-in applications, the server allows users to configure distinct settings for each application and customize application names.
1212

13-
To accommodate this, customers can create or delete applications as needed. There are multiple methods available for managing applications, which we will outline below.
13+
Customers can create or delete applications as needed. There are multiple methods available for managing applications, outlined below.
1414

1515
## Web Panel
1616

17-
The fastest and easiest way to create new applications on the web panel.
17+
The fastest and easiest way to create new applications is via the web panel.
1818

1919
### Step 1
2020

21-
Login to the web panel, on the Dashboard & Click the New Application button
21+
Login to the web panel, navigate to the Dashboard, and click the New Application button.
2222

2323
![image](https://github.com/user-attachments/assets/4df34b28-ff9d-429b-a061-8dd5b6938d5f)
2424

2525
### Step 2
2626

27-
Enter application name and click the ```Create``` button
27+
Enter the application name and click the ```Create``` button.
2828

2929
![image](https://github.com/user-attachments/assets/546a3581-0dbb-494f-8600-0248fc0eaa8b)
3030

31-
Note- In cluster mode, the server automatically creates the new application across all nodes in the cluster. Similarly, if an application is deleted, it will be removed from all nodes as well.
31+
:::info
3232

33-
## Shell Script
33+
In cluster mode, the server automatically creates the new application across all nodes in the cluster. Similarly, if an application is deleted, it will be removed from all nodes as well.
34+
35+
:::
3436

35-
There is a script that creates new applications in Ant Media Server easily. You just need to type a few simple commands.
37+
## Shell Script
3638

37-
Let’s have a look at the steps:
39+
You can also use a script to create new applications easily. Follow these steps:
3840

3941
### Step 1
4042

@@ -46,7 +48,7 @@ cd /usr/local/antmedia
4648

4749
### Step 2
4850

49-
create\_app.sh usage in below.
51+
The `create\_app.sh` usage in below.
5052

5153

5254
```bash
@@ -59,20 +61,18 @@ For example:
5961
sudo ./create_app.sh -n livestream -p /usr/local/antmedia
6062
```
6163

62-
You can add some parameters in **create_app** script. Here are the options:
64+
Available parameters in the **create_app** script:
6365

6466
**-n:** Name of the application that you want to have. It's mandatory
65-
**-p:** (Optional) Path is the install location of Ant Media Server which is /usr/local/antmedia by default.
66-
**-w:** (Optional) The flag to deploy application as war file. Default value is false
67-
**-c:** (Optional) The flag to deploy application in cluster mode. Default value is false
67+
**-p:** (Optional) Path is the install location of Ant Media Server which is /usr/local/antmedia by default.
68+
**-w:** (Optional) The flag to deploy application as war file. Default value is false
69+
**-c:** (Optional) The flag to deploy application in cluster mode. Default value is false
6870
**-m:** Mongo DB host. If it's a cluster, it's mandatory. Otherwise optional
6971
**-u:** Mongo DB user. If it's a cluster, it's mandatory. Otherwise optional
7072
**-s:** Mongo DB password. If it's a cluster, it's mandatory. Otherwise optional
71-
**-h:** print this usage
73+
**-h:** print this usage
7274

73-
Please check it for more detail: [Create App Script](https://github.com/ant-media/Ant-Media-Server/blob/master/src/main/server/create_app.sh#L5)
74-
75-
![](@site/static/img/image-1645437714786.png)
75+
For more details, check the [Create App Script](https://github.com/ant-media/Ant-Media-Server/blob/master/src/main/server/create_app.sh#L5).
7676

7777
### Step 3
7878

@@ -101,3 +101,6 @@ Call the following method to delete an application with curl.
101101
```
102102
curl -X DELETE -H "https://{YOUR_SERVER_ADDRESS}:5443/rest/v2/applications/App_Name"
103103
```
104+
## Congratulations!
105+
106+
You now know how to create and manage applications in Ant Media Server using the web panel, shell scripts, or REST methods. You are ready to organize multiple streaming applications efficiently and deploy them across clusters with ease.

docs/guides/developing-antmedia-server/introduction-plugin-structure.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,23 @@ sidebar_position: 10
77

88
# Introduction to plug-in structure
99

10-
Ant Media plug-in architecture allows developers to customize the video feed while keeping the server source codes untouched. Plug-in structure have various scenarios to address the needs of the developers, for example MCU usage is developed as a plug-in by the Ant Media dev team for emphasizing the wide-range use cases for plug-in architecture.
10+
Ant Media plug-in architecture allows developers to customize the video feed while keeping the server source code untouched. The plug-in structure addresses various use cases; for example, the MCU functionality is implemented as a plug-in by the Ant Media development team to demonstrate the versatility of the plug-in architecture.
1111

12-
In the most basic explanation, a plug-in is added into the regular flow of AMS in ways that we will examine.
13-
Here is what a plugin data flow looks like;
12+
At its core, a plug-in integrates into the regular flow of AMS. Here’s an example of a plug-in data flow:
1413

1514
![](@site/static/img/developer-guides/plugin-data-flow.png)
1615

17-
You can either get the decoded video frames( IFrameListener interface )or encoded video packets ( IPacketListener interface ) from Ant Media Server, then you can do whatever customization you require to do with them.
16+
You can either access decoded video frames through the IFrameListener interface or encoded video packets via the IPacketListener interface, then perform any customizations you need.
1817

19-
Custom Broadcasts
18+
### Custom Broadcasts
2019

21-
You can implement other streaming protocols for publishing to your Ant Media Server with custom broadcast plug-ins, already implemented protocols are WebRTC, RTMP, SRT and stream source pulling. [More information.](/v1/docs/custom-broadcasting)
20+
You can implement other streaming protocols for publishing to your Ant Media Server using custom broadcast plug-ins. The already implemented protocols include WebRTC, RTMP, SRT, and stream source pulling. [More information.](/v1/docs/custom-broadcasting)
2221

2322
### IFrameListener interface
2423

25-
Encoded packets and stream properties are sent to the plugin by this interface. In other words, you should implement this interface and register your concrete object to capture stream properties and also packets from AMS.
24+
Encoded packets and stream properties are sent to the plug-in by this interface. Implement this interface and register your concrete object to capture stream properties and packets from AMS.
2625

27-
Methods of IPacketListener:
26+
#### Methods of IPacketListener:
2827

2928
* **AVPacket onPacket(String streamId, AVPacket packet)**
3029

@@ -49,9 +48,9 @@ Methods of IPacketListener:
4948

5049
### IPacketListener Interface
5150

52-
Encoded packets and stream properties are sent to the plugin by this interface. In other words, you should implement this interface and register your concrete object to capture stream properties and also packets from AMS.
51+
Encoded packets and stream properties are sent to the plug-in by this interface. Implement this interface and register your concrete object to capture stream properties and packets from AMS.
5352

54-
Methods of IPacketListener:
53+
#### Methods of IPacketListener:
5554

5655
* **AVPacket onPacket(String streamId, AVPacket packet)**
5756

@@ -71,3 +70,7 @@ Methods of IPacketListener:
7170
* **void setAudioStreamInfo(String streamId, StreamParametersInfo audioStreamInfo)**
7271

7372
audio stream properties are sent to the plugin with this method.
73+
74+
### Congratulations!
75+
76+
You now have a clear understanding of the Ant Media plug-in structure and its two main interfaces, IFrameListener and IPacketListener. By implementing these interfaces, you can customize video processing, add new protocols, or extend streaming functionality—all without modifying the core AMS code. Your plug-in development environment is now ready to handle custom video streaming workflows.

docs/guides/developing-antmedia-server/plugins-for-ant-media-server.md

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,49 +7,55 @@ sidebar_position: 11
77

88
# Plugins for Ant Media Server
99

10-
Community and our team contributed Ant Media with some plugins listed below that can be used with the Ant Media Server. You may extend Ant Media Server as we tried with plugins, you may refer and inspire from the referenced repositories.
10+
Community members and our team have contributed several plugins that can be used with Ant Media Server. These plugins allow you to extend AMS functionality and serve as inspiration for building your own custom solutions.
1111

1212
### Filter Plugin
1313

14-
Ant Media Server has been released with a built-in filtering plugin since v2.4.0.2. The Filter Plugin lets you perform real-time audio and video manipulation on the server side. The MCU, which allows you to combine video and audio into a single stream for a conference room, is the main application of the filter plugin. You may read more in this [](https://antmedia.io/mcu-conference/)[blog post](https://antmedia.io/mcu-conference/)[](https://antmedia.io/mcu-conference/).
14+
Ant Media Server includes a built-in filtering plugin since v2.4.0.2. The Filter Plugin enables real-time audio and video manipulation on the server side. Its primary use is for the MCU, which combines video and audio into a single stream for conference rooms.
1515

16-
To change the MCU layout or build the filter plugin, please check [here](https://github.com/ant-media/Plugins/tree/master/FilterPlugin).
16+
Read more in this [blog post](https://antmedia.io/mcu-conference/).
1717

18-
For more examples of real-time audio and video manipulation, check out this [blog post](https://antmedia.io/discover-the-filter-plugin/).
18+
To modify the MCU layout or build the Filter Plugin, check [here](https://github.com/ant-media/Plugins/tree/master/FilterPlugin).
19+
20+
For additional examples of real-time audio and video manipulation, see this [blog post](https://antmedia.io/discover-the-filter-plugin/).
1921

2022
### TensorFlow Plugin
2123

22-
The Tensorflow plugin project is for detecting and recognizing objects in a stream. To build and deploy the TensorFlow plugin, check **[](https://github.com/ant-media/Plugins/tree/master/TensorflowPlugin)**[](https://github.com/ant-media/Plugins/tree/master/TensorflowPlugin)[here](https://github.com/ant-media/Plugins/tree/master/TensorflowPlugin)[](https://github.com/ant-media/Plugins/tree/master/TensorflowPlugin)**[](https://github.com/ant-media/Plugins/tree/master/TensorflowPlugin)**.
24+
The TensorFlow plugin allows for detecting and recognizing objects in a stream. Build and deploy the TensorFlow plugin by following the instructions[here](https://github.com/ant-media/Plugins/tree/master/TensorflowPlugin).
2325

2426
### Zixi Plugin
2527

26-
The Zixi Broadcaster is the central component of the Zixi Video Network. It accepts video streams from the Zixi Feeder and processes them, allowing transcoding, transmuxing, recording, and distribution to any device, anywhere, in multiple bitrates and protocols.
28+
The Zixi Broadcaster is the central component of the Zixi Video Network. It accepts streams from the Zixi Feeder and processes them, allowing transcoding, transmuxing, recording, and distribution to any device, anywhere, in multiple bitrates and protocols.
2729

28-
For more details about the deployment and use of Zixi Broadcaster with the Ant Media Plugin, check [here](https://github.com/ant-media/Plugins/tree/master/ZixiPlugin).
30+
Learn more about deploying Zixi with Ant Media Server [here](https://github.com/ant-media/Plugins/tree/master/ZixiPlugin).
2931

3032

3133
### Low-Latency HLS (LL-HLS) Plugin
3234

33-
LL-HLS, available from AMS v2.11+, reduces live stream latency to 2–5 seconds compared to 8–12 seconds of traditional HLS. It uses smaller video parts, enabling playback before segments finish. LL-HLS achieves this by using smaller video segments (called parts) that allow the video player to start playback before an entire segment is completed. It is a paid plugin offered by the Ant Media Server.
35+
LL-HLS, available from AMS v2.11+, reduces live stream latency to 2–5 seconds versus 8–12 seconds for traditional HLS. It uses smaller video parts, enabling playback before segments finish. This is a paid plugin offered by Ant Media Server.
3436

35-
For more details about the LL-HLS plugin, visit [here](https://antmedia.io/docs/guides/playing-live-stream/ll-hls/).
37+
For details, visit [here](https://antmedia.io/docs/guides/playing-live-stream/ll-hls/).
3638

3739
### HLS Merger Plugin
3840

39-
The HLSMerger plugin in Ant Media Server combines multiple HLS streams into a single, unified output, ideal for scenarios like multi-camera setups or dynamic scene switches. It synchronizes .m3u8 playlists and segments, offering a seamless viewing experience. Supported from version 2.6.2 onward, it efficiently enhances streaming workflows.
41+
The HLSMerger plugin combines multiple HLS streams into a single unified output, ideal for multi-camera setups or dynamic scene switches. It synchronizes `.m3u8` playlists and segments to offer a seamless viewing experience. Supported from AMS v2.6.2 onward.
4042

41-
For More details about the HLS Merger Plugin, visit [here](https://antmedia.io/supercharge-hls-streaming-with-hlsmerger-plugin/).
43+
More details about the HLS Merger Plugin are available [here](https://antmedia.io/supercharge-hls-streaming-with-hlsmerger-plugin/).
4244

4345
### Media Push Plugin
4446

45-
The Media Push Plugin, introduced in Ant Media Server v2.8.1, enables the recording of live streams or conferences. It operates by joining a session as a "play-only participant," capturing the streams displayed on a configured web page, and saving the merged output as a VOD file. This is ideal for creating single recordings of conference sessions or customized layouts using tools like Circle or custom web pages.
47+
The Media Push Plugin, introduced in AMS v2.8.1, records live streams or conferences. It joins a session as a "play-only participant," captures streams displayed on a web page, and saves the merged output as a VOD file. Ideal for recording single sessions or customized layouts with tools like Circle.
4648

47-
For setup instructions and more details about the plugin, visit [here](https://antmedia.io/docs/guides/recording-live-streams/media-push-plugin/).
49+
Setup instructions are available [here](https://antmedia.io/docs/guides/recording-live-streams/media-push-plugin/).
4850

4951
### Clip Creator Plugin
5052

51-
The Clip Creator Plugin is an open-source Ant Media Server (AMS) plugin that generates MP4 files from HLS (HTTP Live Streaming) segments. It’s designed to help you capture parts of a live stream at regular intervals or on-demand and save them as MP4 clips. Essentially, this plugin converts your HLS stream to MP4 clips.
53+
The Clip Creator Plugin is an open-source plugin that generates MP4 files from HLS segments. It helps capture parts of a live stream at intervals or on-demand and save them as MP4 clips.
54+
55+
Learn more and configure the plugin via the [Clip Creator blog](https://antmedia.io/capture-mp4-clips-with-ant-media-clip-creator-plugin/).
56+
57+
- To explore more recent plugins developed for Ant Media Server, visit the [Ant Media Marketplace](https://antmedia.io/marketplace/).
5258

53-
To learn more about the Clip Creator plugin & configure it, check the [Clip Creator blog](https://antmedia.io/capture-mp4-clips-with-ant-media-clip-creator-plugin/).
59+
## Congratulations!
5460

55-
- To know more about recent plugins developed, kindly visit [Ant Media Marketplace](https://antmedia.io/marketplace/).
61+
With these plugins, you can extend Ant Media Server in numerous ways—from low-latency streaming to AI-powered object recognition, recording, and multi-stream HLS merging. Whether you want to customize the user experience, implement new streaming protocols, or create automated workflows, the plugin ecosystem gives you the flexibility to innovate without touching the core server code. Your server is now ready for next-level functionality!

0 commit comments

Comments
 (0)