/projectLive

Primary LanguageJavaScriptMIT LicenseMIT

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