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.

See all of these tools in one place at slay.tools.

Source for several of these projects is already public in this organization - the SLM protocol (slay-slm), the OBS plugin (slm-wire-for-obs), and the restreamer (slay-restream). The rest will follow as it is cleaned up appropriately.

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.tools/donate.html. Thank you for your consideration!


Stream infrastructure

These components handle ingest, transcoding, multistreaming, and the audio relay to the radio server.

slay-restream

An RTMP ingest and multistream rebroadcast server with an optional server-side audio relay - the successor to the separate slay-rtmp-server and slay-shout-relay projects, now consolidated into one repo. The RTMP side 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; destinations are configured in a JSON file with no rebuild required. The relay reads the live stream server-side, extracts the audio, and forwards it as an MP3 stream to a Shoutcast or Icecast2 server, removing the need for the broadcaster to run a separate local streaming client (BUTT, etc.). Both run from a single Docker Compose stack (nginx-rtmp + ffmpeg), with the relay behind an opt-in compose profile.

Platform: Linux x86_64 (Docker; NVIDIA GPU required for the RTMP transcode)

Source: git.c64.org/slayradio-public/slay-restream

Release (relay binary): git.c64.org/slayradio-public/-/packages/generic/slay-restream/latest

ffmpeg-nvenc

A minimal ffmpeg binary built from source with only the features needed for the slay-restream pipeline: RTMP, RTMPS/TLS, FLV muxer, h264_nvenc hardware encoder, and audio copy. Downloaded automatically by slay-restream'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


Studio tools

These components run on studio, DJ, and remote machines to play media, feed video into OBS, monitor output, and manage track metadata.

slay-cart

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, the low-latency SLM (SLAY Media) UDP/shared-memory protocol, and the slm-wire-for-obs OBS plugin - all simultaneously. Includes a REST API and WebSocket on port 7878 for external control from Bitfocus Companion, StreamDeck, or any HTTP client. (Formerly published as slay-media.)

Platforms: Linux x86_64 (tar.gz, AppImage, deb, rpm), Windows x86_64 (msi, zip)

Release: git.c64.org/slayradio-public/-/packages/generic/slay-cart/latest

slm-wire-for-obs

An OBS Studio source plugin that receives SLM (SLAY Media) streams - from slay-cart, slay-camera, or any SLM sender - and renders them as a native OBS source with sub-frame latency. Uses zero-copy shared memory for senders on the same machine and UDP for everything else; sources are discovered automatically over multicast, with no manual IP configuration.

Platforms: Linux x86_64, Windows x64

Source: git.c64.org/slayradio-public/slm-wire-for-obs

Release: git.c64.org/slayradio-public/-/packages/generic/slm-wire-for-obs/latest

slay-camera

An Android app that turns a phone into a low-latency SLM video source for OBS - point it at a scene and it shows up in slm-wire-for-obs as if it were a local camera. Encodes H.265 (HEVC) via the hardware encoder with automatic H.264 fallback, plus optional 48 kHz stereo audio, and announces itself over multicast so OBS finds it without any manual setup. Includes tap-to-focus, exposure and flash controls, front/rear switching, and 1080p30 / 720p30 selection.

Platform: Android 8.0 (API 26) or newer

Release (APK): git.c64.org/slayradio-public/-/packages/generic/slay-camera/latest

tiny-ndi-viewer

A small standalone NDI monitor. Discovers NDI sources on the network, presents them in a thumbnail-grid selector, and renders the chosen source with GPU acceleration; includes per-source bandwidth and color-range controls and optional recording. Handy for confirming slay-cart's NDI output, or any other NDI feed, without opening a full production tool.

Platforms: Linux x86_64, Windows x64

Release: git.c64.org/slayradio-public/-/packages/generic/tiny-ndi-viewer/latest

ffmpeg-windows

A minimal ffmpeg binary built for Windows x86_64, used by slay-cart 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:

Web client

Native app:

Native app

Low-latency protocol for media. SHM and UDP implementation.
Updated 2026-07-04 17:53:37 +02:00
RTMP restreamer and Ice/ShoutCast relay, formerly slay-rtmp-server and slay-shout-relay.
Updated 2026-06-21 02:12:51 +02:00