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, 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

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

Both are real sessions against sample/demo data, from local runs.

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.

flowchart LR
    Clients["OBS / FFmpeg / Apps"] --> Server["OpenRTMP Server<br/>librtmp2-server"]
    Server --> Players["RTMP / RTMPS Players"]
    Panel["OpenRTMP Control Panel<br/>librtmp2-server-panel"] -->|REST API| Server
    Server --> Library["OpenRTMP Protocol Library<br/>librtmp2"]
    Packages["OpenRTMP Packages<br/>packages"] -. distributes .-> Server
    Packages -. distributes .-> Library
Loading

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

Official package repositories and distribution automation for OpenRTMP components across supported Linux distributions, macOS, and Windows.

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 7 of 7 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…