All apps · 0 apps
Broadcaster
Docker app from paloooz's Repository
Overview
Readme
View on GitHubBroadcaster
Generate and host HTTP Live Streams from local video content using FFMpeg. Broadcaster will create playlists of your video files and live stream the playlist. It will orchestrate time keeping to make sure anyone watching your stream is in the same position. If no one is watching, the timeline keeps going, just like old school TV stations.
How It Works
Broadcaster pre-generates HLS segments for all your videos on first startup. This transcoding process runs in the background and can take a while depending on your library size and hardware. Once transcoded, videos are cached and don't need to be re-encoded on subsequent startups.
The web UI is available immediately at startup, but channels won't appear until at least one video has been transcoded. You can monitor transcoding progress in the Docker logs or console output.
Prerequisites
- Broadcaster uses FFMpeg to encode your videos to h264 for HTTP Live Streaming.
- If you have an Nvidia GPU, it is highly recommended you have
ffmpegcompiled with Nvidia's non-freeh264_nvenccodec. - If you have an Intel CPU with Intel QuickSync, you can try the
h264_qsvcodec. - Without either of these, you'll have to use a software codec like
libx264which will be slower. You can set the codec in the config.txt.
Getting Started
Clone the repository:
git clone https://github.com/theodoreroddy/Broadcaster.git
Change into the Broadcaster directory and run npm install:
cd ./Broadcaster
npm install
Define your channels in a channels.json file:
[{
"type": "shuffle",
"name": "My Channel",
"slug": "mychannel",
"paths": [
"/path/to/videos"
]
}]
The type specifies the playlist type:
shuffle: will shuffle the files and play them in a random order.alphabetical: will play the files back in alphabetical order.
The name is a human readable name for the channel and the slug specifies the directory name the channel will use.
Start your server:
npm start
Monitoring Progress
On first run, Broadcaster will transcode all videos in your library. Monitor progress with:
# Docker
docker logs -f broadcaster
# Or if running directly
npm start
You'll see output like:
[PreGenerator] Transcoding: My Video.mkv (1/50)
[PreGenerator] Transcoding complete: My Video.mkv
Channels will appear in the web UI as their videos finish transcoding.
Install Broadcaster on Unraid in a few clicks.
Find Broadcaster in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Before first run:
1. Media Directory - Point to your media library (read-only access)
2. NVIDIA GPU - Requires NVIDIA Container Toolkit installed on Unraid (Community Applications: Nvidia-Driver)
After first run, create a channels.json in your Data Directory:
}>
See https://github.com/theodorecharles/Broadcaster for full documentation
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
tedcharles/broadcaster:latestRuntime arguments
- Web UI
http://[IP]:[PORT:12121]/- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--runtime=nvidia
Template configuration
Web interface port
- Target
- 12121
- Default
- 12121
- Value
- 12121
Storage for HLS streams, config files (channels.json, config.txt), and logs
- Target
- /data
- Default
- /mnt/user/appdata/broadcaster
- Value
- /mnt/user/appdata/broadcaster
Your media files (movies, TV shows, etc.)
- Target
- /media
- Default
- /mnt/user/media
- Value
- /mnt/user/media
GPU ID to use (0 for first GPU, or 'all' for all GPUs). Run 'nvidia-smi' to see available GPUs.
- Target
- NVIDIA_VISIBLE_DEVICES
- Default
- 0
- Value
- 0
NVIDIA driver capabilities (leave as 'all')
- Target
- NVIDIA_DRIVER_CAPABILITIES
- Default
- all
- Value
- all