- p2p media distribution!!! - multiple users in the same room will share video segments to each other, dramatically reducing required bandwidth (and in theory, a server with only 10Mbit upload should be able to let 100s of users watch the same media synced)
- Player should sync automatically when any user plays, pauses or joins (note: currently doesn't sync if a user plays/pauses using PIP floating player controls)
- (basic) Multiroom support - doesn't currently support passworded rooms or 'room admins'
- Integrated 'on-the-fly' http video stream to HLS transcoding (requires ffmpeg installed on machine)
- Integrated jellyfin data source
- New UI
- HLS
- RTMP to HLS stream with VOD capabilities
- Direct HLS playback
- Controls
- Play, pause, and sync all members in the room
- Sync Room
- Sync button pushes users time to all clients*
- Chat
- No login, simply enter a displayname
- Custom emotes from images
- Admin authentication*
- Now Playing
- Set what is being played more info
- More coming soon!
*Only Admins are able to sync the room
Radium runs in a Docker container, simply modify and run the docker command.
# Basic Docker Container
$ docker build . -t radium:latest
$ docker run -d --name=radium -p 3000:3000 -e BASE_URL=https://radium.example.com radium:latest
Prefer using docker compose? Check out the docker-compose.yml
Want to use Heroku? Click the button, enter environment variables, and click deploy!
The base url is required for basic functionality.
If not using a reverse proxy and a domain, the IP and PORT need to be supplied.
# Add the following environment variable
-e BASE_URL=https://radium.example.com
or
# Add the following environment variable
-e BASE_URL=http://1.2.3.4:3000
The HLS url can be changed via an environment variable or within the application when running. To set a permanent url, pass the environment variable HLS_URL
through.
# Add the following environment variable
-e HLS_URL=https://domain.com/stream.m3u8
If the HLS_URL
variable is not passed through, a default demo file will play.
Visit the documentation for generating HLS media.
The admin token is automatically generated and logged to the console whenever started, but a custom one can be passed through.
# Add the following environment variable
-e ADMIN_TOKEN=secret123
Visit the documentation for token usage.
- MovieNight This is a single-instance streaming server with chat. Originally written to replace Rabbit as the platform for watching movies with a group of people online.
- Open Streaming Platform A Self-Hosted Video Streaming and Recording Server Using Python, Flask, Nginx-RTMP.
- Jellyfin The Free Software Media System v10.6 introduced a synced playback feature
zibbp.tech · GitHub @zibbp ·
Radium is distributed under the terms of the MIT license. See LICENSE.md for details.