Skip to content
@OpenRTMP

OpenRTMP

OpenRTMP

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.

librtmp2-server-panel dashboard: a stream expanded showing publish/play URLs and live bitrate, codec, resolution, FPS, publisher and per-player RTT and player-count stats

librtmp2-server-panel — create a stream, get publish/play URLs and keys, and watch live stats.

librtmp2-server demo: starting the server, then curl against the real HTTP API — health check, creating a stream, and reading its stats before and after a publisher connects

librtmp2-server — start the server, then drive it with curl: health check, create a stream, read its stats.

Both are real local sessions against a running librtmp2-server with sample data.

Website Status License

Website · Five-minute Docker quickstart · Guides · Documentation · Community · Issues · Discussions · 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.

OpenRTMP at a glance

OpenRTMP is the umbrella project. The repository names below are the implementation components behind one RTMP-focused ecosystem.

OpenRTMP architecture: OBS, FFmpeg and other apps publish to the OpenRTMP Server (librtmp2-server), which serves RTMP and RTMPS players and is built on the OpenRTMP Protocol Library (librtmp2). The OpenRTMP Control Panel (librtmp2-server-panel) manages the server over its REST API, and OpenRTMP Packages distributes the library as native packages.

Use the complete stack when you want a self-hosted RTMP service, or adopt only the library/server component your application needs.

Choose your path

I want to… Start here
Build a custom RTMP server, client, relay, plugin, or gateway OpenRTMP Protocol Library (librtmp2)
Run a private RTMP/RTMPS endpoint with keys, API, and statistics OpenRTMP Server (librtmp2-server)
Manage streams and view live statistics in a browser OpenRTMP Control Panel (librtmp2-server-panel)
Report a bug or request a feature OpenRTMP Community Issues
Ask a question or discuss an idea OpenRTMP Community Discussions
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

Try the complete stack

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.

Projects

OpenRTMP Protocol Library — librtmp2

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.

OpenRTMP Server — librtmp2-server

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.

OpenRTMP Control Panel — librtmp2-server-panel

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 Packages — packages

Signed native packages of librtmp2 for Debian, Ubuntu, Alpine, Fedora, Enterprise Linux, openSUSE, and Arch Linux, a Homebrew tap, and the automation that builds them. Windows packages are built from the first librtmp2 release with native Windows support onward. The server and panel ship as Docker images.

Enhanced RTMP and codec support

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.

Good fit today

  • 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.

Community and contributing

Use OpenRTMP Community Issues for reproducible bugs, feature requests, documentation/package problems, and interoperability reports. Use OpenRTMP Community Discussions for setup help, usage questions, ideas, and design discussion.

Contributions are welcome across protocol code, server behavior, the panel, documentation, interoperability tests, fuzzing, and deployment examples.

  1. Read the organization-wide contributing guide.
  2. Start or find the central community issue/discussion when coordination is needed.
  3. Choose the source repository that owns the implementation.
  4. Open the pull request in that source repository and link the central tracking issue when applicable.
  5. Include tests and exact reproduction steps for behavioral changes.

See the public roadmap for current priorities and the support guide for reporting and support guidance.

Security

Do not publish security-sensitive details in a public issue or discussion. Follow the organization security policy.

License

OpenRTMP projects are released under the MIT License unless a repository states otherwise.

Pinned Loading

  1. librtmp2 librtmp2 Public

    Modern Rust RTMP/RTMPS library for Legacy and Enhanced RTMP v1/v2 with HEVC, AV1, AMF, server/client APIs and C FFI.

    Rust 1 1

  2. librtmp2-server librtmp2-server Public

    Self-hosted Rust RTMP/RTMPS and Enhanced RTMP media server for OBS and FFmpeg with REST API, live stats, Docker and clustering.

    Rust 3 2

Repositories

Showing 9 of 9 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…