Self-hosted Live Video Streaming Website + Backend
Reference website: https://boltstream.me
This is the result of a series of blog posts that I made here
- Live stream via RTMP with a stream key to your RTMP ingest server
- Any number of simultaneous live streams
- Playback via standard HLS
- Restrict playback with HLS segment encryption (AES-128)
- Pay-per-minute 🙂
- Capture VODs (recordings) of live streams
- Live-clipping of VODs via nginx-vod-module
- Timed metadata via WebVTT
- Synchronized chat room messages
- Synchronized play-by-play live sports events
- Web application
- Web server
- RTMP ingest
- Actually, we use a fork that adds a number of features that we use. The original nginx-rtmp hasn’t been updated in years.
- HLS VODs
- Live clipping
- Various video encoding/packaging
- Realtime sports play-by-play data synchronized to your live streams
- Audio content recognition (Shazaam for your live streams)
Clone this repo!
ansible/site.yml and update all the variables like
You will also need to modify some variables in
terraform/terraform.tfvars, and then from within the
terraform directory, just run:
At the end of the Terraform deployment (might take 10-15 minutes), you will have a full self-hosted live video streaming platform with your own RTMP ingest and playback endpoints.
I put this stack together about a year ago and haven’t been able to push much further on it.
Ideally it could be deployed in Docker (I don’t know anything about Docker or Kubernetes). The nginx and Django stuff seems like it could be pretty easy to containerize.
Help me package this up! We need more federated live-streaming platforms! It can’t just always be Twitch.tv, YouTube, and Facebook!