Skip to content

Commit db1f5c4

Browse files
Merge pull request #607 from ant-media/happyending1-amar
Update installing-ams-on-linux.md
2 parents 1a15e0e + 99c65e0 commit db1f5c4

File tree

102 files changed

+1433
-252
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+1433
-252
lines changed

docs/guides/adaptive-bitrate/adaptive-bitrate-streaming.md

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Internet users have varying connection speeds, from fast broadband to congested
1717

1818
With ABR:
1919

20-
- Viewers always get the best possible quality for their network.
20+
- Viewers get best possible quality based on available bandwidth.
2121
- Automatic switching happens behind the scenes, improving engagement and reducing viewer drop-off.
2222
- Smooth playback is ensured even during network fluctuations.
2323

@@ -26,7 +26,7 @@ With ABR:
2626

2727
## How ABR Works in Ant Media Server
2828

29-
Ant Media Server supports ABR for all playback protocols like **WebRTC** and **HLS** streaming.
29+
Ant Media Server supports ABR for all playback protocols such as **WebRTC** and **HLS** streaming.
3030

3131
| Protocol | ABR Behavior |
3232
|----------|--------------|
@@ -41,7 +41,7 @@ Ant Media Server supports ABR for all playback protocols like **WebRTC** and **H
4141
You can enable ABR from your Ant Media application settings:
4242

4343
- Go to Applications **>** Settings **>** Adaptive Bitrate in the Ant Media Server dashboard
44-
- Enable adaptive streaming and add the needed resolutions.
44+
- Enable adaptive streaming and add the desired resolutions and bitrates.
4545

4646
![](@site/static/img/adaptive-streaming/dashboardABR.png)
4747

@@ -51,7 +51,7 @@ You can enable ABR from your Ant Media application settings:
5151

5252
## Broadcast-Level ABR Configuration
5353

54-
Since **Ant Media Server 2.8.3**, you can configure ABR settings at the **broadcast level**. This means each stream can have its own customized ABR profiles, offering more granular control.
54+
As of **Ant Media Server 2.8.3**, you can configure ABR settings at the **broadcast level**. This means each stream can have its own customized ABR profiles, offering more granular control.
5555

5656
### Rest API Endpoint
5757

@@ -80,7 +80,7 @@ curl --location 'https://domainName:5443/live/rest/v2/broadcasts/create' \
8080
- `height`: The vertical resolution (e.g., 240 = 240p).
8181
- `videoBitrate`: The target video bitrate in bits per second.
8282
- `audioBitrate`: The target audio bitrate in bits per second.
83-
- `forceEncode`: Ensures transcoding happens even if the incoming stream matches the target resolution.
83+
- `forceEncode`: Forces transcoding even when the source stream resolution matches the profile.
8484
:::
8585

8686
## Stats-Based Adaptive Bitrate Switching
@@ -100,22 +100,20 @@ This means that **WebRTC viewers** will automatically receive the best possible
100100

101101
## Original WebRTC or HLS Stream Behavior with ABR
102102

103-
- There is an additional setting that influences how the original WebRTC stream is handled when ABR profiles are configured:
103+
- These settings decide whether the original incoming stream should be included among the ABR renditions: `useOriginalWebRTCEnabled` for **WebRTC**, and `addOriginalMuxerIntoHLSPlaylist` for **HLS**.
104+
- By default,
105+
- **WebRTC original is excluded (false)**,
106+
- **HLS original is included (true)**.
107+
104108

105109
```js
106110
"useOriginalWebRTCEnabled": false,
107111
```
108112

109-
By default, this setting is disabled and set to false.
110-
111-
- There is a setting that influences how the original HLS stream is handled when ABR profiles are configured:
112-
113113
```js
114114
"addOriginalMuxerIntoHLSPlaylist": true,
115115
```
116116

117-
By default, this setting is enabled so the original resolution is also added to the HLS output.
118-
119117
### Behavior:
120118

121119
- **`true`:**
@@ -140,3 +138,15 @@ When using **ABR**, it’s recommended to:
140138
- Regularly monitor your viewer bandwidth stats via Ant Media’s monitoring tools to fine-tune ABR settings.
141139

142140
In order to use GPU for heavy ABR streaming, [Learn How to Enable GPU for Ant Media Server](/guides/advanced-usage/using-nvidia-gpu/).
141+
142+
<br /><br />
143+
---
144+
145+
<div align="center">
146+
<h2> 📶 Smooth Streams, Smart Switching — Welcome to ABR Season! 🔄 </h2>
147+
</div>
148+
149+
You’ve enabled **Adaptive Bitrate Streaming**, so your viewers now get the best resolution possible for their connection — no more buffering nightmares. Custom ABR profiles + stats-based switching = streams that adapt on the fly.
150+
151+
Your streaming game is now polished, resilient, and **ready for any network curveball!** 🚀
152+

docs/guides/adaptive-bitrate/enforcing-stream-quality.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ sidebar_position: 2
99

1010
Ant Media Server (AMS) has the ability to force stream quality. In this guide, you'll learn what it is, how it works, and how to benefit from the stream quality feature.
1111

12-
The client-side viewer can enforce a resolution it would like to get. Keep in mind that if you request a quality with a bitrate higher than the client's bandwidth, you may see some packet drops or pixelations.
12+
Viewers can enforce a resolution they would like to get. Keep in mind: if you request a quality with bitrate higher than the viewer’s bandwidth, you might see packet drops or pixelation.
1313

1414
## How does the adaptive bitrate work?
1515

@@ -25,7 +25,7 @@ Example:
2525
* Above 1000kbps: In this case, a resolution of 480p is sent.
2626
* Less than 800kbps: In this case, a resolution of 360p is sent.
2727

28-
The adaptive bitrate feature makes sure that the end user only gets what the server is sending out.
28+
The adaptive bitrate feature ensures viewers receive only which qualities the server is publishing.
2929

3030
You can learn more about the adaptive bitrate in the previous document.
3131

@@ -55,7 +55,7 @@ else if (info == "streamInformation") {
5555
var streamResolutions = new Array();
5656

5757
obj["streamInfo"].forEach(function(entry) {
58-
//It's needs to both of VP8 and H264. So it can be dublicate
58+
// This supports both VP8 and H264; resolution entries might appear duplicate.
5959
if(!streamResolutions.includes(entry["streamHeight"])){
6060
streamResolutions.push(entry["streamHeight"]);
6161
}
@@ -72,7 +72,7 @@ For more details, check out [this code snippet](https://github.com/ant-media/Str
7272
7373
### Enforce Quality on Client Side
7474
75-
There is a working sample `player.html` below. When you choose a resolution, it'll force the quality. You can select the resolution, as you can see from the screenshot below.
75+
There is a working sample `player.html` below. When you choose a resolution, it will force the quality. You can select the resolution, as you can see from the screenshot below.
7676
7777
![](@site/static/img/adaptive-streaming/stream-quality.webp)
7878
@@ -84,15 +84,15 @@ AMS also allows enforcing quality in the Web Player (play.html), similar to `pla
8484
8585
To learn more about AMS Web Player, check **[here](https://antmedia.io/docs/guides/playing-live-stream/embedded-web-player/)**.
8686
87-
Just change the playOrder to play stream with WebRTC, HLS, DASH, or LL-HLS. The stream quality can be selected in the same way.
87+
Adjust the playOrder setting to choose among WebRTC, HLS, DASH, or LL-HLS. Users can then select quality similarly via the Web Player.
8888
8989
![](@site/static/img/adaptive-streaming/stream-quality-web-player.webp)
9090
9191
### Enforcing Quality for M3U8 HLS URL
9292
93-
Since some users play the HLS directly via M3U8, you can enforce stream quality by requesting a specific HLS variant. This can be achieved by selecting the appropriate `.m3u8` file that corresponds to the desired quality.
93+
Since some users access HLS by specifying a particular `.m3u8` URL, you can enforce stream quality by selecting the variant corresponding to that quality.
9494
95-
For example, if your HLS playlist has multiple bit rates:
95+
For example, if your HLS playlist has multiple bitrates:
9696
9797
* adaptive.m3u8
9898
* 240p
@@ -131,3 +131,14 @@ For example:
131131
```
132132
https://domain:5443/live/streams/ll-hls/stream1/480/stream1__lowlatency.m3u8
133133
```
134+
135+
<br /><br />
136+
---
137+
138+
<div align="center">
139+
<h2> 🎯 Your Stream, Your Quality, Your Way! 📺 </h2>
140+
</div>
141+
142+
You’ve enabled **Enforced Stream Quality**, meaning viewers can pick (or you can push) exact resolutions via WebRTC, HLS, DASH, or LL-HLS. No guesswork: **what’s requested is what’s played.**
143+
144+
Now your streams aren’t **just adaptive** — they **follow the quality rules you set.** ✅

docs/guides/adaptive-bitrate/forceencode.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ keywords: [Adaptive Bitrate Streaming, ABR, multi-bitrate streaming, live stream
55
sidebar_position: 4
66
---
77

8-
ForceEncode is a feature of Adaptive Bitrate Streaming that transcodes all resolutions on the server by default.
8+
ForceEncode is an ABR feature that ensures all resolutions are transcoded on the server by default, providing consistent quality across all streams.
99

1010
By default, if two ABRs are enabled, such as 1080p and 720p, and the user publishes the RTMP stream in 1080p, the HLS will include all three resolutions, including the original one, resulting in two 1080p, including the transcoded one.
1111

@@ -82,3 +82,15 @@ test.m3u8
8282
:::
8383

8484
Using this feature allows you to save bandwidth and resources.
85+
86+
<br /><br />
87+
---
88+
89+
<div align="center">
90+
<h2> 🎯 You are a Smart Encoder ⚙️ </h2>
91+
</div>
92+
93+
With ForceEncode, you have the power to optimize your server's performance. By **selectively transcoding streams**, you can balance quality and resource usage effectively.
94+
95+
Your streaming setup is now more efficient, **delivering high-quality content without overloading your server!** 🚀
96+

docs/guides/adaptive-bitrate/generating-thumbnails.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,16 @@ Thumbnails are small, lightweight versions of images or videos, used as previews
1313

1414
Ant Media Server can generate thumbnails (previews) of the incoming streams on the fly. This guide will help you learn configuration parameters for generating and using thumnails.
1515

16-
- In order to activate thumbail generation, you just need to add at least one adaptive bitrate. You can do that in the dashboard using ```Application > live > Settings > Add New Bitrate```
16+
- To activate thumbnail generation, add at least one adaptive bitrate. You can do that in the dashboard using ```Application > live > Settings > Add New Bitrate```
1717

1818
![](@site/static/img/preview_1.png)
1919

20-
- You can enable the thumbnail feature from the web panel settings by enabling the `Generate Preview` checkbox:
20+
- Enable the thumbnail feature from the web panel settings by checking the 'Generate Preview' checkbox:
2121

2222
![](@site/static/img/enable-preview.png)
2323

24-
- You can also enable it via Advance application settings as well. Go to the ```Application > Your App > Settings > click on basic > switch to Advance``` and search for `generatePreview` and set it to true.
24+
- You can also enable it via Advanced application settings as well.
25+
- Go to the ```Application > Your App > Settings > click on basic > Switch to Advanced``` and search for `generatePreview` and set it to true.
2526

2627
```js
2728
"generatePreview": true,
@@ -86,7 +87,7 @@ As an alternative, you can also enable this feature on the web panel by enabling
8687
8788
## Preview Thumbnail
8889
89-
The generated thumbnails will be available in this URL template:
90+
Access the generated thumbnails via the following URL template:
9091
9192
```html
9293
http://<SERVER_NAME>:5080/live/previews/<STREAM_ID>.png
@@ -113,3 +114,16 @@ The absolute path of the preview image is as follows:
113114
```
114115

115116
In addition to this, you can also upload thumbnail images to the S3 buckets. Please [check out the instructions for S3 Integration](https://antmedia.io/docs/category/s3-recording-and-integration/).
117+
118+
119+
<br /><br />
120+
---
121+
122+
<div align="center">
123+
<h2> 📸 Thumbnails delivered 🎯 </h2>
124+
</div>
125+
126+
With **thumbnail previews enabled**, your viewers get a sneak peek before they dive in. Whether it's a **snapshot** of the action or a glimpse of the content, these **previews** enhance the browsing experience.
127+
128+
Your streams are now not just watched; **they're previewed, engaged with, and remembered!** 🚀
129+

docs/guides/advanced-usage/activate-ams-within-restricted-geo-locations.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ keywords: [Activate AMS within self-hosted proxy server, restricted geo location
55
sidebar_position: 12
66
---
77

8-
# Activate Ant Media Server from within restricted geo locations
8+
# Activate Ant Media Server in Restricted Geographies
99

10-
Ant Media uses Google services to verify the license key and those services are banned in China and Hong Kong.
10+
Ant Media uses Google services to verify the license key, which are banned in China and Hong Kong.
1111

1212
For this reason, it’s not possible to verify the Ant Media license key using Google services.
1313

@@ -17,14 +17,14 @@ In this article, I'll provide two options to get around these restrictions and e
1717

1818
The two options are:
1919

20-
- A proxy service that is provided free for Ant Media Enterprise users.
20+
- A proxy service, provided free for Ant Media Enterprise users.
2121
- A self-hosted proxy server
2222

2323
## 1. Free Proxy service for Enterprise Users
2424

2525
Ant Media offers this to Enterprise users for free. To access the free service, simply send an email to support@antmedia.io to receive a username and password.
2626

27-
After receiving a username and password, run the following command then restart the Ant Media Server.
27+
After receiving a username and password, run the following command, then restart the Ant Media Server.
2828

2929
```
3030
echo "proxy.address=username:password@license-verification.antmedia.io:80" >> /usr/local/antmedia/conf/red5.properties
@@ -114,3 +114,15 @@ systemctl restart antmedia
114114
```
115115
You can now go to the Dashboard and enter your license key in the settings.
116116

117+
<br /><br />
118+
---
119+
120+
<div align="center">
121+
<h2> 🔓 License Verified, Barriers Bypassed! 🌍 </h2>
122+
</div>
123+
124+
You’ve enabled **proxy support** (either free or self-hosted) so your Ant Media Server can verify its **license—even from within restricted regions**. No more blocked verification, no more frustration.
125+
126+
Your setup is now licensed, connected, and unstoppable — wherever you are! 🚀
127+
128+

docs/guides/advanced-usage/overcoming-restricted-networks-webrtc-ams.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ systemctl daemon-reload
2929
sudo setcap 'cap_net_bind_service=+ep' /usr/bin/turnserver
3030
```
3131

32-
3. Get a certificate for your domain. (TLS/TCP does not work in Let's Encrpyt Coturn due to socket buffer operation error)
32+
3. Obtain a certificate for your domain. (TLS/TCP does not work in Let's Encrypt Coturn due to socket buffer operation error)
3333

3434
4. Update the TURN server configuration file (/etc/turnserver.conf) with these parameters:
3535

@@ -92,3 +92,15 @@ turnServerCredential=your-turn-server-password
9292

9393
Setting up a TURN server and configuring it with Ant Media Server allows you to seamlessly use WebRTC in restricted networks where only HTTP/HTTPS ports are open. This solution ensures uninterrupted communication with the outside world, enabling reliable video streaming through Ant Media Server.
9494

95+
<br /><br />
96+
---
97+
98+
<div align="center">
99+
<h2> 🔐 WebRTC, No Walls — TURNed On and Talking! 🌐 </h2>
100+
</div>
101+
102+
With **TURN configured and AMS adjusted**, your WebRTC streams now flow even when all **you’ve got are HTTP/HTTPS channels**. TURN over TLS/TCP is punching through the restrictions.
103+
104+
Streams are **no longer blocked—they’re resilient, connected, and unstoppable.** 🎯
105+
106+

docs/guides/advanced-usage/turn-instalation/coturn-quick-installation.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,15 @@ turnutils_uclient -v -t -T -u username -w password -p 3478 turn_server_ip
112112

113113
To use your TURN server with Ant Media, check out this
114114
[Guide](https://antmedia.io/docs/guides/configuration-and-testing/configuring-stun-turn-addresses/)
115+
116+
<br /><br />
117+
---
118+
119+
<div align="center">
120+
<h2> 🔄 TURN-Up the Connectivity — Firewalls, NATs, You're No Match! ⚡️ </h2>
121+
</div>
122+
123+
With **coTURN** installed and configured, even the strictest **firewalls and NATs can't stop your streams**. Your communication gets relayed when needed, keeping everything smooth and seamless.
124+
125+
**Your network just got smarter** — reliable, resilient, and ready for any connection challenge! 🚀
126+

docs/guides/advanced-usage/turn-instalation/turn-load-balancing.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ We always prefer to install the Database Server on a separate server and we choo
5555

5656
apt-get update && apt-get install mariadb-server -y
5757

58-
* Edit the following file ```/etc/mysql/mariadb.conf.d/50-server.cnf``` with your favorite editor such as ```vim``` or ```nano``` Please add the following lines then save and exit:
58+
* Edit the following file ```/etc/mysql/mariadb.conf.d/50-server.cnf``` with your favorite editor, such as ```vim``` or ```nano``` Please add the following lines then save and exit:
5959

6060
bind-address = 0.0.0.0
6161
innodb_file_format=Barracuda
@@ -109,7 +109,7 @@ In this section, we will install and configure CoTurn on Coturn1 and Coturn2 ser
109109

110110
```vim /etc/turnserver.conf```
111111

112-
* Add below lines then save and exit. Keep in mind that we did set the password ```coturn123``` and we use them below. If you change the password, use your own instead of ```coturn123```below.
112+
* Add the lines below, then save and exit. Keep in mind that we did set the password ```coturn123``` and we use them below. If you change the password, use your own instead of ```coturn123```below.
113113

114114
fingerprint
115115
lt-cred-mech
@@ -121,7 +121,7 @@ In this section, we will install and configure CoTurn on Coturn1 and Coturn2 ser
121121

122122
![](@site/static/img/coturn-2.png)
123123

124-
* Import SQL schema(```/usr/share/coturn/schema.sql```) to the database server. The file /usr/share/coturn/schema.sql is in one of the turn servers. Upload to the database server and ```schema.sql```is imported.
124+
* Import SQL schema(```/usr/share/coturn/schema.sql```) to the database server. The file /usr/share/coturn/schema.sql is in one of the turn servers. Upload to the database server and ```schema.sql```is imported.
125125

126126
```scp -r /usr/share/coturn/schema.sql root@192.168.1.200:```
127127

@@ -153,4 +153,15 @@ You can use the following command to check that DNS Round-Robin is working corre
153153

154154
![](@site/static/img/coturn-nslookup.png)
155155

156-
If you have any questions, please just drop a line to contact (at) antmedia.io
156+
If you have any questions, please just drop a line to contact (at) antmedia.io
157+
158+
<br /><br />
159+
---
160+
161+
<div align="center">
162+
<h2> ⚙️ TURN, The Traffic Manager 🌐 </h2>
163+
</div>
164+
165+
You’ve set up **CoTurn** with DNS **Round Robin** and shared **MySQL userdb** — now multiple TURN servers handle your traffic evenly. Requests get distributed, auth stays consistent, and there's no single chokepoint.
166+
167+
Your TURN setup is now resilient, **balanced**, and ready to scale! 🚀

0 commit comments

Comments
 (0)