Giter Site home page Giter Site logo

chrissale1000 / algora-tv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from algora-io/tv

0.0 0.0 0.0 2.58 MB

The interactive livestreaming & video sharing service for developers

Home Page: https://tv.algora.io

License: GNU Affero General Public License v3.0

Shell 0.05% JavaScript 0.31% Elixir 87.67% TypeScript 2.39% CSS 0.52% HTML 8.47% Batchfile 0.02% Dockerfile 0.57%

algora-tv's Introduction

Logo

Algora TV

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

Architecture

Overview

graph
    Streamers{Streamers} --> Fly
    Fly[Fly<br>Elixir App] --> RTMP
    Fly --> Web[Phoenix<br>Web Server]
    Fly --> Db[Fly<br>Postgres]
    RTMP[Membrane<br>RTMP Server] -->|First mile delivery| Tigris[Tigris<br>Object Storage]
    Viewers{Viewers} -->|Last mile delivery| Tigris
    Viewers --> Fly
Loading

Livestream pipeline

graph
    Encoder{Encoder<br>e.g. OBS} -->|RTMP| Source[FLV Demuxer]
    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 --> fMP4
    CMAFMuxerAudio --> fMP4
    fMP4[Fragmented MP4] -->|HLS| Tigris{Tigris Object Storage}
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
  • FFmpeg

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:

algora-tv's People

Contributors

zcesur avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.