/go-oryx

The go-oryx is SRS++, focus on real-time live streaming cluster.

Primary LanguageGoMIT LicenseMIT

go-oryx

Build Status codecov

Oryx is next generation media streaming server, extract service to processes which communicates over http with each other, to get more flexible, low latency, programmable and high maintainable server.

Oryx will implement most of features of srs, which is industrial-strength live streaming cluster, for the best conceptual integrity and the simplest implementation. In another words, oryx is next-generation srs, the srs-ng.

Architecture

The architecture of oryx is a group of isolate processes:

  1. shell which exec other processes, the frontend of oryx.
  2. rtmplb rtmp frontend of oryx, proxy to backend streaming workers.
  3. httplb http flv/hls+ frontend of oryx, proxy to backend streaming workers.
  4. apilb http api frontend of oryx, proxy to backend api.
  5. httpx-static HTTP/HTTPS static server with API proxy(win32) over lego/acme of letsencrypt.
  6. srs the streaming worker, other stream worker is also ok.
                         +----------+                   +---------+
                    +----+  API LB  +------HTTP(1985)---+   SRS   +
                    |    +----------+                   +---------+
                    |
                    |    +----------+                   +---------+
                    +----+  HTTP LB +------FLV(8080)----+   SRS   +
                    |    +----------+                   +---------+
                    |
+---------+         |    +----------+                   +---------+
|  Shell  +--exec->-+----+  RTMP LB +------RTMP(1935)---+   SRS   +
+---------+         |    +----------+                   +---------+
                    |
                    |    +------------+
                    +----+ SRS Worker |
                         +------------+

Winlin 2016.07.09