/Spinosa

[working] Distributed real-time streaming media server cluster, supporting RTMP, HTTP-FLV, Dash, WebRTC...

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Quasipaa

languages open issues pull requests license forks stars last commit author

Quasipaa is an open source, distributed real-time audio and video server. Unlike other solutions, this is not a library that can be embedded in your own program, but a full-fledged cluster of services, Quasipaa not only provides basic streaming media server, but also includes load balancing, external control API interface. Quasipaa by Rust to build, the use of Rust outstanding performance and excellent engineering became a robust system.

Quasipaa(Quasipaa spinosa is a species of frog in the family Dicroglossidae)The project was originally created to address the Rust's lack of audio and video servers, and when the author started the project, the area was virtually empty.

Version

Development stage
The progress of the project is in the project dashboard, you can view it at any time.

Note: Due to the limited ability of the author, the early plan only supports RTMP, WebRTC and HttpFLV protocols. I will try to improve the support for different protocols and codec in the later stage.

Deployment

It is currently in development and has not completed all the features of stage 1, so actual deployment is not supported.

Overview

design

Quasipaa is a streaming media service cluster, which contains multiple independent services, which can be scaled horizontally:

  • Publish: The data pushed through various protocols will be pushed to the exchange after processing and demultiplexing.
  • Exchange: The exchange further processes the Publish data, such as secondary compression, saving as static files, encoding conversion.
  • Core: Controls all nodes of the cluster, including load balancing, dynamic scheduling, authority control, coding and protocol control.
  • Object Storage: Storing log data and live replay as static files.
  • Pull: The data is repackaged into multiple protocols and distributed to clients.

Plan

  • RTMP protocol support.
  • Exchange.
  • Load balancing.
  • Audio video data codec.
  • Live service.
  • Live playback and static file support.
  • WebRTC STUN support.
  • WebRTC TURN support.

Roadmap

  • WebAssembly SDK.
  • Independently developed live protocols.
  • Support existing protocols wherever possible.
  • Best performance possible.
  • Adaptive multiple codec.

License

GPL Copyright (c) 2020 Mr.Panda.