BilbycastBilbycast
Pillar 2 · One gateway

One gateway,every format.

Twelve protocols in a single Rust binary — ingressed and egressed, with HLS and CMAF-LL delivered on egress and RTSP pulled on ingress. In-process video and audio transcoding — no ffmpeg subprocess, no separate transcode box, no extra hardware. NMOS-friendly out of the box.

One picker, every protocol

Add an input. Pick from the list.

SRT, RIST, RTP, UDP, RTMP, RTSP, WebRTC WHIP (receive) and WHEP (pull), the entire SMPTE ST 2110 family (uncompressed -20/-23 video, -30/-31 audio, -40 ANC), RTP Audio, SDI capture over Blackmagic DeckLink, multi-path bonded links, the local Media Player, a built-in test pattern, and replay clips — every ingest is a first-class entry in the same Add Input modal, with the ST 2110 and SDI entries appearing once the node reports that hardware. (HLS and CMAF-LL are egress-only and live in the Output modal. WHEP works both ways: pull from an external WHEP server as an input, or serve browser viewers as an output. MXL inputs are drawn on the Visual Flow Editor canvas rather than picked from this dropdown.)

Bilbycast Manager — New Input modal with the full protocol picker expanded

Protocol Support

A unified gateway for every common broadcast and streaming transport, with FEC and redundancy built in.

Compressed-audio bridge: AAC in MPEG-TS (carried over RTMP/RTSP/SRT/UDP/RTP) decodes in-process via Fraunhofer FDK AAC (AAC-LC, HE-AAC v1/v2, multichannel up to 7.1), and can be re-encoded to AAC-LC, HE-AAC v1/v2, Opus, MP2, or AC-3 — all in-process via FDK AAC or libavcodec — on any RTMP, HLS, WebRTC, SRT, UDP, RTP, or RIST output.

Video transcoding (video_encode): libx264, libx265, NVIDIA NVENC, Intel QSV, VAAPI, and Rockchip RKMPP targeting H.264/HEVC on SRT, RIST, UDP, RTP, RTMP, and WebRTC outputs (WebRTC is H.264-only; HEVC sources are auto-transcoded). Three release artefacts, each a full codec bundle and each an AGPL-3.0-or-later combined work under the GPL portions: x86_64-linux-full carries libx264, libx265, NVENC, QSV and VAAPI; aarch64-linux-full the same set without QSV (Intel iGPU is x86_64-only); aarch64-linux-rockchip swaps the GPU encoders for RKMPP, keeping libx264 / libx265 as the CPU fallback.

ProtocolInputOutput
SRT
RIST
RTP
UDP
RTMP/RTMPS
RTSP
HLS
CMAF / CMAF-LL
WebRTC
ST 2110-20
ST 2110-23
ST 2110-30
ST 2110-31
ST 2110-40
rtp_audio
Bonded
SDI
MXL
Local display

In-process transcoding

Video and audio transcoders run inside the same Rust process as the protocol stack. No subprocess hop, no shell-out, no extra failure mode. Every published release binary is a full codec bundle — GPL libx264 / libx265 plus the hardware backends that exist on that architecture (NVENC, QSV and VAAPI on x86_64; NVENC and VAAPI on aarch64; RKMPP on Rockchip) — shipped as an AGPL-3.0-or-later combined work under the GPL portions. The runtime probe auto-detects which of the compiled-in backends the host can actually open.

Video — software
libx264 (H.264), libx265 (HEVC)

GPL-licensed encoders, shipped in the *-full release channel

Video — hardware
NVIDIA NVENC, Intel QSV (x86_64), VAAPI (AMD / Intel), Rockchip RKMPP (aarch64) — H.264 / HEVC

LGPL-clean dispatcher; the startup probe auto-detects which backend the host can open

Audio — compressed
AAC-LC, HE-AAC v1/v2 (FDK), Opus, MP2, AC-3

In-process via FDK AAC and libavcodec — no ffmpeg subprocess

Audio — uncompressed
PCM L16 / L24, SMPTE 302M, AES67, ST 2110-30/-31

Per-output sample-rate, bit-depth, IS-08 channel routing — hot-reload

Bilbycast Manager — Output modal with the video transcode picker expanded across libx264, libx265, NVENC, QSV, and VAAPI
Pick a target codec

Software, NVENC, QSV, VAAPI — same dropdown.

The Output modal's video_encode picker shows every encoder the host actually supports. The hardware-probe runs at startup and silently hides backends that aren't installed or don't open, so you only see options that will work. Same picker for AAC, Opus, MP2, AC-3 — and for chassis-style transports like ST 2110 the audio sub-form drops in alongside.

Hot input switching

Switch sources without going to black.

Attach multiple inputs to one flow and cut over with a single API call. A shared TS continuity fixer resets CC state, injects the new input's PAT/PMT with a bumped version, and forwards immediately. Receivers keep playing — even when the two sources use different codecs, sample rates, bitrates, or containers.

  • Format-agnostic: H.264, HEVC, MPEG-2, uncompressed ST 2110-20/-23 video
  • Zero-gap PMT version bump (mod 32, PAT only when program set changes)
  • Pair with SMPTE 2022-7 for sequence-aware hitless merge
  • Drives the bilbycast-manager Switcher (PGM/PVW director console)
Bilbycast edge flow view — every input and output rendered as a signal-flow graph with live bitrate per leg and an on-air thumbnail

Drops into your facility.

Bilbycast speaks the standards your control system already speaks. No bespoke shim layer.

NMOS IS-04
Discovery & Registration via mDNS-SD
NMOS IS-05
Connection Management via REST
NMOS IS-08
Audio Channel Mapping with hot-reload
BCP-004
Receiver capability sets
SMPTE 2022-1
Forward error correction
SMPTE 2022-7
Hitless redundancy across two paths
TR-101290
Transport-stream conformance analysis
VSF TR-06-1 / TR-07
RIST Simple + Main profile awareness

Set it up in 10 minutes.

Runs on commodity off-the-shelf hardware. Edge and relay are free under AGPL 3; manager is free for up to 10 nodes. No sign-up wall, no credit card. The same binaries you'd run in production.