Skip to content
This repository has been archived by the owner on Jun 29, 2020. It is now read-only.

An abandoned student led project. Reach out on Discord if you would like to revive the project!

License

Notifications You must be signed in to change notification settings

zero-to-mastery/projectLive

Repository files navigation

projectLive

your own personal streaming server

The scope of this project is to build an easy to setup personal streaming service, with live chat, user count and replay functionality

Tech Stack

Description

projectLive is a tool for people to easily setup their own personale streaming server. Each instance will be able to issue streaming keys to use for authentication on the rmtp server.

The project is composed of three parts:

  • the server, handling the stream conversion
  • the streaming frontend, where users will be able to watch the stream and interact ina chat window
  • the admin dashboard, where the streamer will be able to set the stream title and see all the stream stats (number of viewers etc.)

Architecture

look at the diagram here

Story points

server

  • easy to setup (maybe with a cli)

rmtp

  • stream is protected with stream key check
  • stream is recorded on file

api

  • users can create accounts in order to interact with the chat
  • chat should be saved on database
  • chat should work with websocket

streaming frontend

  • users can register
  • users can see when the streamer is live
  • users can watch replay if streamer is not live
  • users can interact with chat

admin frontend

  • streamer can login
  • streamer can set stream title
  • streamer can see chat
  • streamer can see live viewers

Project setup

Set upstream for your fork to point to the original repository. Directions

Install dependencies in rmtp, api, frontend and admin

Database

Make sure to have MongoDB installed locally or connect to your own cloud hosted database

  • Local:
    • Installation directions for Windows
    • Installation directions for Mac
    • Installation directions for Linux
  • Cloud:

Api

this part uses FeathersJS to simplify connection, authentication and all related CRUD operations. In order to use this app, you need to setup the "mongodb" field in config/default.json to be your connection url

Rmtp

make sure you have ffmpeg installed on your system. You can find instructions here

About

An abandoned student led project. Reach out on Discord if you would like to revive the project!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published