Skip to content

The interactive livestreaming & video sharing service for developers

License

Notifications You must be signed in to change notification settings

ryanwinchester-forks/tv

 
 

Repository files navigation

Logo

Algora TV

The interactive livestreaming & video sharing service for developers.
Website · Discord · Twitter · YouTube · Issues

Architecture

graph
    Streamers{Streamers} --> Fly
    Fly[Elixir App - Fly] --> RTMP
    Fly --> Web[Web Server - Phoenix]
    Fly --> Db[Postgres - Fly]
    RTMP[RTMP Server - Membrane] -->|First mile delivery| Tigris[Object Storage - Tigris]
    Viewers{Viewers} -->|Last mile delivery| Tigris
    Viewers --> Fly
Loading
graph
    Encoder{Encoder} -->|RTMP packets| Source[RTMP Source]
    Source -->|video| H264Parser[H264 Parser]
    Source -->|audio| AACParser[AAC Parser]
    H264Parser --> H264Payloader[H264 Payloader]
    AACParser --> AACPayloader[AAC Payloader]
    H264Payloader --> CMAFMuxerVideo[CMAF Muxer]
    AACPayloader --> CMAFMuxerAudio[CMAF Muxer]
    CMAFMuxerVideo --> HLSSink
    CMAFMuxerAudio --> HLSSink
    HLSSink[HLS Sink] --> Tigris{Tigris Object Storage}
Loading
graph
    App[Application] --> RTMP[RTMP Server]
    App --> Endpoint[Web Server]
    App --> Repo[Ecto Repo]
    App --> Telemetry
    App --> PubSub
    App --> Presence
    App --> DNSCluster[DNS Cluster]
    App --> FlyRPC[Fly RPC]
Loading

Getting Started

To get a local copy up and running, please follow these steps.

Prerequisites

Here is what you need to be able to run Algora TV.

  • Elixir (Version: >=1.12)
  • OTP
  • PostgreSQL

Development

Setup

  1. Clone the repo into a public GitHub repository (or fork https://github.com/algora-io/tv/fork).

    git clone https://github.com/algora-io/tv.git
  2. Go to the project folder

    cd tv
  3. Install dependencies with mix

    mix deps.get
  4. Set up your .env file

    • Duplicate .env.example to .env
    • Add your environment variables in the .env file
  5. Create and migrate your database with mix

    mix ecto.setup
  6. Start your development server

    env $(cat .env | xargs -L 1) iex -S mix phx.server

License

Distributed under the AGPLv3 License. See LICENSE for more information.

Acknowledgements

Special thanks to these amazing projects which help power Algora TV:

About

The interactive livestreaming & video sharing service for developers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 86.6%
  • HTML 5.8%
  • TypeScript 4.8%
  • Dockerfile 1.1%
  • CSS 1.0%
  • JavaScript 0.6%
  • Other 0.1%