Public SLAY Radio things
SLAY Radio
SLAY Radio is an internet radio station focused on Commodore 64 remixes and retro game music, with a live video streaming component. This organization publishes pre-built binaries for the broadcast stack - tools we use ourselves that may be useful to anyone running a similar setup.
Sources for most of these projects will be published here once cleaned up appropriately.
For now, the binary packages are published here: git.c64.org/slayradio-public/-/packages
Want to get in contact with us? Join our Discord server at slay.radio/discord or send us a message through the Contact form on the home page at slay.radio/contact.
If you find any of this useful, consider tossing a coin or two our way at slay.radio/donate. Thank you for your consideration!
Stream infrastructure
These components handle ingest, transcoding, multistreaming, and the audio relay to the radio server.
slay-rtmp-server
An RTMP ingest and multistream rebroadcast server. Accepts a single incoming stream from OBS or any RTMP encoder, transcodes video with NVIDIA NVENC hardware encoding, and pushes the result simultaneously to any number of destinations - Twitch, Kick, YouTube, and others. Runs as a Docker container (nginx-rtmp + ffmpeg); destinations are configured in a JSON file with no rebuild required.
Package to be published later.
ffmpeg-nvenc
A minimal ffmpeg binary built from source with only the features needed for the slay-rtmp-server pipeline: RTMP, RTMPS/TLS, FLV muxer, h264_nvenc hardware encoder, and audio copy. Downloaded automatically by slay-rtmp-server's Dockerfile at build time - no third-party static build involved.
Platform: Linux x86_64
Release: git.c64.org/slayradio-public/-/packages/generic/ffmpeg-nvenc/8.1
slay-shout-relay
Reads a live RTMP stream server-side, extracts the audio, and relays it as an MP3 stream to a Shoutcast or Icecast2 server. Removes the need for the broadcaster to run a separate local streaming client (BUTT, etc.). Retries automatically if either the RTMP source or the audio server drops.
Platform: Linux x86_64
Release: git.c64.org/slayradio-public/-/packages/generic/slay-shout-relay/latest
Studio tools
These components run on studio and DJ machines to manage media playback and track metadata.
slay-media
A VJ media player (Tauri 2 / Rust + Svelte) that manages a library of local video and audio clips, YouTube/Vimeo links, and remote URLs. Plays media to NDI, a custom low-latency UDP/shared-memory protocol, and an OBS plugin receiver - all simultaneously. Includes a REST API and WebSocket on port 7878 for external control from Bitfocus Companion, StreamDeck, or any HTTP client.
Platform: Linux x86_64 (Windows partially supported)
Release: git.c64.org/slayradio-public/-/packages/generic/slay-media/latest
ffmpeg-windows
A minimal ffmpeg binary built for Windows x86_64, used by slay-media on Windows hosts for video decode, proxy transcoding, thumbnail generation, and waveform extraction.
Platform: Windows x86_64
Release: git.c64.org/slayradio-public/-/packages/generic/ffmpeg-windows/8.1
title-sender
A lightweight background daemon that watches the local media environment and forwards now-playing track information to a title-receiver on the network. Supports MPRIS2 (Linux), System Media Transport Controls + window title scanning (Windows), and MediaRemote (macOS). Any MPRIS2-capable player on Linux is picked up automatically - music players, browsers, Spotify, VLC, and others.
Platforms: Linux x86_64, Windows x86_64. macOS to follow.
Release: git.c64.org/slayradio-public/-/packages/generic/title-sender/latest
title-receiver
The studio-side counterpart to title-sender. Aggregates now-playing feeds from any number of sender daemons, Traktor decks (via a QML plugin), and Icecast2/Shoutcast sources into a native desktop app (egui) and a browser-based web client. The operator reviews the current track, edits if needed, and publishes it to the streaming server with a single click.
Platforms: Linux x86_64, Windows x86_64
Release: git.c64.org/slayradio-public/-/packages/generic/title-receiver/latest
Receiver screenshots
Web client:
Native app:

