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.
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.)

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.
| Protocol | Input | Output | Key Features |
|---|---|---|---|
| SRT | AES-CTR/GCM, Stream ID, FEC, 2022-7 redundancy, SMPTE 302M audio mode, optional audio_encode + video_encode on TS output, optional delay block | ||
| RIST | VSF TR-06-1 Simple Profile — NACK-driven retransmit, SMPTE 2022-7 redundancy, optional audio_encode + video_encode on TS output, optional delay block | ||
| RTP | SMPTE 2022-1 FEC, unicast/multicast, DSCP QoS, 2022-7 redundancy, optional audio_encode + video_encode on TS output, optional delay block | ||
| UDP | Raw MPEG-TS, unicast/multicast, SMPTE 302M audio mode, optional audio_encode + video_encode on TS output, optional delay block | ||
| RTMP/RTMPS | H.264 (FLV) + Enhanced-RTMP HEVC, AAC audio, ingest from OBS/ffmpeg, publish to Twitch/YouTube/Facebook, TLS, optional audio_encode + video_encode | ||
| RTSP | — | Pull H.264/H.265 from IP cameras, TCP/UDP | |
| HLS | — | Segment-based egress, HEVC/HDR support, MPTS filtering, optional audio_encode (AAC/HE-AAC/MP2/AC-3) | |
| CMAF / CMAF-LL | — | Fragmented MP4 with parallel HLS + MPEG-DASH manifests, chunked-transfer low-latency mode, ClearKey CENC (cenc AES-CTR + cbcs AES-CBC pattern) with Widevine/PlayReady/FairPlay PSSH passthrough, optional audio_encode (AAC/HE-AAC) and video_encode (H.264 on HLS+DASH, HEVC on DASH) | |
| WebRTC | WHIP/WHEP, H.264 + Opus, browser-compatible, via str0m, AAC→Opus and HEVC→H.264 auto-transcode | ||
| ST 2110-20 | Uncompressed video (RFC 4175, YCbCr 4:2:2 8/10-bit), PTP, 2022-7 Red/Blue — bridged to H.264/HEVC compressed flows on egress | ||
| ST 2110-23 | Uncompressed video partitioned (2SI + sample-row partition modes), PTP, 2022-7 Red/Blue | ||
| ST 2110-30 | PCM L16/L24, AES67 / RFC 3190, PTP, 2022-7 Red/Blue, IS-08 channel routing + hot reload | ||
| ST 2110-31 | AES3 transparent (Dolby E, Dolby Digital, etc.), bit-exact passthrough | ||
| ST 2110-40 | RFC 8331 ancillary — SCTE-104, ATC timecode, CEA-608/708 | ||
| rtp_audio | Generic RFC 3551 PCM over RTP (no PTP required), 302M-capable output, transcode + IS-08 channel mapping | ||
| Bonded | Carrier-grade multi-path aggregation — N heterogeneous UDP / QUIC legs (cellular, Starlink, fibre) with a capacity-aware adaptive scheduler and IDR duplication across the two best legs, 32-bit ARQ, per-leg RTT / loss / keepalive stats | ||
| SDI | Blackmagic DeckLink capture + playout (video + embedded audio, VANC SCTE-104/35, ATC timecode, CEA-608/708) — via bilbycast-decklink-rs; ships in the *-full release (sdi-decklink feature) | ||
| MXL | EBU / Linux Foundation Media eXchange Layer — same-host shared-memory bus (mxl_video / mxl_audio / mxl_anc), PTP-required; off-by-default mxl feature | ||
| Local display | — | HDMI / DisplayPort (KMS) + ALSA confidence-monitor playout — zero-copy VAAPI scanout, audio-master A/V sync; Linux-only display feature (on by default) |
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.
GPL-licensed encoders, shipped in the *-full release channel
LGPL-clean dispatcher; the startup probe auto-detects which backend the host can open
In-process via FDK AAC and libavcodec — no ffmpeg subprocess
Per-output sample-rate, bit-depth, IS-08 channel routing — hot-reload

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.
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)

Drops into your facility.
Bilbycast speaks the standards your control system already speaks. No bespoke shim layer.
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.