Modern RTMP infrastructure for developers and stream operators.
Build with a Rust RTMP/RTMPS and Enhanced RTMP protocol library, or deploy a private RTMP server with stream keys, REST API, live statistics, and a browser control panel.
Website · Five-minute Docker quickstart · Guides · Documentation · Contributing
Project status: OpenRTMP is active alpha software. It is suitable for development, evaluation, protocol work, and deployments that have been tested against their exact clients and recovery requirements. Pin versions and validate the complete workflow before critical production use.
| I want to… | Start here |
|---|---|
| Build a custom RTMP server, client, relay, plugin, or gateway | librtmp2 |
| Run a private RTMP/RTMPS endpoint with keys, API, and statistics | librtmp2-server |
| Manage streams and view live statistics in a browser | librtmp2-server-panel |
| Evaluate the complete stack with Docker and OBS | Five-minute quickstart |
| Understand current protocol limitations | librtmp2 implementation status |
| Compare OpenRTMP with nginx-rtmp | OpenRTMP vs nginx-rtmp |
The standalone Compose stack pulls published server, panel, and Redis images. You don't need to clone or build librtmp2 or librtmp2-server; clone the panel repository only to get its compose.quickstart.yml.
git clone https://github.com/OpenRTMP/librtmp2-server-panel.git
cd librtmp2-server-panel
# Generate the required API token, panel password, and session secret
# as shown in the full quickstart, then:
docker compose -f compose.quickstart.yml up -d- Panel:
http://localhost:8000 - API health:
http://localhost:8080/api/v1/health - RTMP:
rtmp://localhost:1935/live
Follow the complete quickstart for copy-and-paste secret generation, OBS setup, health checks, troubleshooting, and the internet-facing deployment checklist.
A Rust protocol library for RTMP/RTMPS session handling, publish/play relay primitives, AMF, chunking, parser modules for Enhanced RTMP structures, and a C-compatible FFI.
Use it when your application owns authentication, storage, routing, transcoding, recording, or other media policy.
A focused RTMP/RTMPS application layer built on librtmp2:
- SQLite-backed stream registry
- Per-stream publish, play, and statistics keys
- Bearer-authenticated REST API
- JSON statistics
- nginx-rtmp-compatible XML statistics
- Optional RTMPS listener alongside plaintext RTMP
- Published multi-architecture Docker images
The current server does not aim to provide nginx-rtmp feature parity for HLS, recording, exec, push relay, or every nginx directive.
A Flask web UI for creating and deleting streams, copying publish/play/statistics URLs, and monitoring live bitrate, codec, resolution, frame rate, RTT, uptime, publishers, and players.
OpenRTMP works on modern codec and Enhanced RTMP workflows, including HEVC, AV1, and Opus signaling/passthrough where supported by the complete sender/server/player chain.
Protocol parser support, opaque media relay, and fully integrated session negotiation are different levels of implementation. The librtmp2 implementation status is the code-accurate source of truth for what is complete, partial, parser-only, or not yet wired into the default live path.
- Private RTMP/RTMPS ingest and playback
- Custom Rust or FFI-based RTMP applications
- OBS and FFmpeg interoperability work
- Stream-key and statistics integrations
- nginx-compatible monitoring migrations
- Enhanced RTMP research and implementation
- Parser, fuzzing, and network-safety contributions
Consider a broader media platform when you need a turnkey viewer website, built-in HLS, recording, transcoding, push relay, or many non-RTMP protocols.
Contributions are welcome across protocol code, server behavior, the panel, documentation, interoperability tests, fuzzing, and deployment examples.
- Read the organization-wide contributing guide.
- Choose the repository that owns the behavior.
- Search existing issues and discussions before opening a duplicate.
- Start with an issue labeled
good first issueorhelp wantedwhen available. - Include tests and exact reproduction steps for behavioral changes.
See the public roadmap for current priorities and the support guide for where to ask questions or report bugs.
Do not publish security-sensitive details in a public issue. Follow the organization security policy.
OpenRTMP projects are released under the MIT License unless a repository states otherwise.