mirror of
https://github.com/algora-io/tv.git
synced 2024-11-26 01:00:20 +02:00
3.4 KiB
3.4 KiB
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
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}
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
-
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
-
Go to the project folder
cd tv
-
Install dependencies with mix
mix deps.get
-
Set up your
.env
file- Duplicate
.env.example
to.env
- Add your environment variables in the
.env
file
- Duplicate
-
Create and migrate your database with mix
mix ecto.setup
-
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: