# Ant Media Server

Open-core WebRTC, SRT, RTMP, and HLS media server with a REST API for broadcasts, recording, and tokens.

A Java media server whose Community Edition is Apache-2.0 and whose Enterprise Edition adds adaptive bitrate, clustering, and SDK support. Broadcasts, VoD, tokens, IP cameras, and playlists are managed through a versioned REST API that the Builder documents and ships in both editions.

Alternative to: Wowza, Mux

- Capabilities: adaptable, operable
- Vertical: video-streaming
- Shape: product
- Form factor: api
- Execution model: deterministic
- Provenance: human-written (recorded, never ranked)
- Repo: https://github.com/ant-media/Ant-Media-Server (Apache-2.0 (Community Edition; Enterprise under a separate license)), 4726 stars, last commit 2026-09-03
- Last activity: 2026-09-03
- Page: apps/ant-media--ant-media-server.html
- JSON: apps/ant-media--ant-media-server.json

## Use it when

- I need sub-second WebRTC playback for an auction or classroom and want to run the server myself
- I want an agent to spin up broadcasts, hand out tokens, and pull IP cameras through an API

## Gotchas

- Two license files in the repo; GitHub shows 'other'. Community is Apache-2.0, Enterprise is not
- Adaptive bitrate, clustering, and the mobile SDKs are Enterprise-only; check the edition before promising features
- Java server with Tomcat; expect a heavier footprint than MediaMTX

## Editions

- Community Edition: Free, open source
  - binary: https://github.com/ant-media/Ant-Media-Server/releases
  - source: https://github.com/ant-media/Ant-Media-Server
  - one-click: https://aws.amazon.com/marketplace/pp/prodview-okmynlgwgvq6w
- Enterprise Edition: Free, closed source
  - hosted: https://antmedia.io/free-trial/
  - one-click: https://aws.amazon.com/marketplace/pp/prodview-464ritgzkzod6

## Adaptable: make it yours

Effort: config-only (4 things to edit)

Server-wide settings live in conf/red5.properties and per-application settings in webapps/&lt;app>/WEB-INF/red5-web.properties (HLS, WebRTC, recording, tokens, webhooks). Most of these are also editable from the web panel and the REST API, so an Adopter rarely edits Java. Adding protocol behavior means forking.

- Env vars: none
- Config files: src/main/server/conf/red5.properties, src/main/server/webapps/root/WEB-INF/red5-web.properties, src/main/server/conf/logback.xml, src/main/server/conf/jee-container.xml
- Prompt files: none
- Accounts you'll need: antmedia.io account (Enterprise only)

## Operable: what an agent can drive

Operability: official. Interface: api at https://antmedia.io/docs/ (published by the builder, local).

### Reach (partial coverage)

- Create, list, update, and delete broadcasts: reachable. BroadcastRestService.java: @Path /v2/broadcasts, /create, /create-list, /list/{offset}/{size}, /{id}
- Start and stop pulled stream sources and IP cameras: reachable. BroadcastRestService.java: /{id}/start, /{id}/stop, /{id}/ip-camera/move, /onvif-devices
- Turn recording on or off per stream: reachable. BroadcastRestService.java: /{id}/recording/{recording-status}
- Issue and validate playback or publish tokens: reachable. BroadcastRestService.java: /{id}/token, /{id}/tokens, /{id}/jwt-token, /validate-token
- Add RTMP endpoints to republish a stream: reachable. BroadcastRestService.java: /{id}/endpoint
- Manage VoD files and convert HLS to MP4: reachable. VoDRestService.java; BroadcastRestService: /{hls_filename}/hls-to-mp4
- Read broadcast and WebRTC statistics: reachable. BroadcastRestService.java: /{id}/broadcast-statistics, /total-broadcast-statistics, /webrtc-send-low-level-stats
- Manage playlists and subscribers: reachable. BroadcastRestService.java: /playlists/{id}/next, /{id}/subscribers
- Adaptive bitrate transcoding: not reachable. README: Enterprise feature; not in Community Edition
- Cluster across servers: not reachable. ClusterRestService exists but clustering is an Enterprise feature per README

## Code stack

- Languages: Java
- Frameworks: Red5, Tomcat, ffmpeg
- Package manager: maven
- Database: MapDB, MongoDB (optional)
- Hosting target: Linux, Docker, Kubernetes, AWS Marketplace, Azure Marketplace

## Evidence and confidence

- formFactor: README: headless media server managed through web panel and REST API (confidence 0.9)
- executionModel: no model at runtime (confidence 0.99)
- operability: REST services in src/main/java/io/antmedia/rest published by ant-media; docs at antmedia.io/docs (confidence 0.9)
- effort: conf/red5.properties and WEB-INF/red5-web.properties exist in src/main/server; the properties keys were not read this pass (confidence 0.6)
- editions: COMMUNITY_EDITION_LICENSE is Apache-2.0 for Community Edition; README lists Enterprise free trial and marketplaces (confidence 0.8)
- active: GitHub pushedAt 2026-09-03; release ams-v3.1.0 2026-08-31
- reach:  (confidence 0.8)

## Open questions

- Enterprise Edition pricing; antmedia.io/pricing returned 403 to the fetcher
- Confirm which red5-web.properties keys are documented for Adopters (antmedia.io docs returned 403)
- Confirm the Community versus Enterprise feature split from the current docs rather than the README summary

## Sources

- https://antmedia.io (sourcing:video-streaming:github)
- https://github.com/ant-media/Ant-Media-Server (sourcing:video-streaming:github)
