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