Every capability, on one page
The full Bilbycast feature list, no curation. If you're evaluating against a procurement checklist or a competitive matrix, this is the page to bookmark. Read top-to-bottom or jump to the headlines on thefour pillars.
Twelve Protocols, One Gateway
SRT (with multi-path bonding), RIST (VSF TR-06-1), RTP, UDP, RTMP/RTMPS (+ Enhanced-RTMP HEVC), RTSP, HLS, CMAF / CMAF-LL, WebRTC (WHIP/WHEP), SMPTE ST 2110-20/-23 uncompressed video + -30/-31/-40 audio/ANC, MXL (Media eXchange Layer), and SDI (Blackmagic DeckLink) capture + playout. Inputs, outputs, and flows are independently managed entities — reuse outputs across flows, attach multiple inputs to one flow, and swap them mid-stream.
Hot Input Switching
Flows with multiple inputs support zero-gap cutover via 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 without a glitch. Fully format-agnostic: switch between different codecs, containers, and transports (H.264, HEVC, uncompressed ST 2110) on the same flow.
Video Transcoding
In-process H.264 / HEVC transcoding on SRT, RIST, UDP, RTP, RTMP, and WebRTC outputs via libx264, libx265, or hardware encoders — NVIDIA NVENC, Intel QSV, AMD/Intel VAAPI, and Rockchip RKMPP. TS outputs use a streaming PMT rewriter that preserves non-video PIDs. WebRTC auto-transcodes HEVC sources to H.264 so every browser can play. Shipped bundled in the release binary as an AGPL-3.0-or-later combined work under the GPL portions.
Audio Gateway + Channel Router
Per-output sample-rate, bit-depth, and channel-routing transcode (via rubato). Built-in presets for 5.1→stereo BS.775 downmix, stereo→mono sum, and arbitrary matrix routing. IS-08 channel maps hot-reload without restarting flows — shuffle, swap, or remix audio channels live. SMPTE 302M LPCM-in-MPEG-TS for byte-identical interop with ffmpeg, srt-live-transmit, and broadcast hardware decoders.
Compressed-Audio Bridge
AAC carried in MPEG-TS over RTMP, RTSP, SRT, UDP, or RTP decodes in-process via Fraunhofer FDK AAC (AAC-LC, HE-AAC v1/v2, multichannel up to 7.1). Land it on ST 2110-30/-31, rtp_audio, or SMPTE 302M outputs — or re-encode to AAC-LC, HE-AAC v1/v2, Opus, MP2, or AC-3 on any RTMP, HLS, WebRTC, SRT, UDP, RTP, or RIST output. All codecs encode in-process via FDK AAC and libavcodec — no external ffmpeg subprocess on the default build.
Multi-Path Bonding
Aggregate multiple UDP + QUIC legs — cellular modems, Starlink, and fixed links — into one resilient path. An adaptive, capacity-aware scheduler balances traffic across links in real time, with cross-leg ARQ, FEC, and SMPTE 2022-7 hitless redundancy for loss protection. A shared-leg capacity broker arbitrates bonded outputs by priority tier when links are shared. Requires a bilbycast node at both ends.
Output Delay & Path Sync
SRT, RIST, RTP, and UDP outputs accept a delay block so parallel paths with different processing latencies stay aligned. Pick fixed millisecond delay, a self-adjusting target end-to-end latency, or a frame-accurate target using auto-detected frame rate. Keep a clean feed in lockstep with a commentary-processed variant, or compensate for a downstream transcode box.
Aligned Output — cut between nodes
Two edges forwarding the same feed put it on the wire at different moments, because each releases when its own network path delivers. An alignment group cancels that difference: the manager works out one shared timeline, hands it to every member node, and each edge holds its packets until that timeline says release — so a downstream switcher gets a clean cut between boxes instead of a timing jump. Two to eight members, each one UDP or RTP output on a single-input, non-assembled, non-transcoded flow with PCR egress pacing and a passthrough-clock or bonded input. Alignment reads the timing already in the stream, so it and PCR/PTS regeneration are mutually exclusive. Not a 2022-7 merge: the streams stay separate, they simply arrive in step.
Secure IP Tunneling
Forward any TCP or UDP traffic through encrypted QUIC tunnels between edge nodes. Monitor devices, control equipment, or extend your network across NAT — all managed from the bilbycast-manager UI with per-tunnel HMAC bind tokens and ChaCha20-Poly1305 AEAD.
Broadcast Standards
SMPTE 2022-1 FEC encode/decode, SMPTE 2022-7 hitless redundancy merge, TR-101290 transport-stream analysis, SMPTE RP 2129 trust-boundary metrics, and VSF TR-06-1 / TR-07 awareness. RIST is a first-class protocol, not a subset of SRT.
End-to-End Encrypted
ChaCha20-Poly1305 AEAD between edge nodes (relay is zero-knowledge), AES-CTR/GCM for SRT, TLS 1.3 via QUIC, optional certificate pinning, and secrets encrypted at rest. Memory-safe core with tight, static binaries for simple deployment.
Signed Fleet Upgrades
Upgrade one node or a whole Group from the manager. Every release manifest is signed with Sigstore keyless — an ephemeral key, a Fulcio certificate binding the signature to the release workflow run that produced it, and a public Rekor transparency-log entry — so there is no long-lived signing key anywhere to steal. Each node verifies the manifest against a compiled-in allowlist naming its own repository and workflow before it will trust the SHA-256 inside, and a boot watchdog rolls back to the previous version automatically if the new binary crash-loops on startup. A binary that boots but never checks in with the manager is held, flagged, and left for an operator to roll back — that case is surfaced, not reverted for you.
NMOS Integration
IS-04 Discovery & Registration, IS-05 Connection Management, IS-08 Audio Channel Mapping, and BCP-004 receiver capability sets. Best-effort PTP integration via external ptp4l. Seamless drop-in to existing NMOS facilities for both audio and uncompressed ST 2110-20/-23 video.
MPTS / SPTS Handling
Full MPEG-TS multi-program passthrough on UDP, RTP, SRT, RIST, and HLS. Per-output program_number filter rewrites the PAT and drops unrelated PIDs — fan one MPTS input out as a full MPTS plus several filtered SPTS outputs from the same flow.
Flow Assembly — TS from N Inputs
Build a fresh MPEG-TS (SPTS or MPTS) from elementary streams pulled off any of a flow’s inputs: mix video from input A with audio from input B, compose a multi-program feed from N sources, or stand up a pre-bus hitless merger between two ingress legs. PCM and AES3 inputs (ST 2110-30/-31, rtp_audio) become TS carriers via input-level audio_encode (AAC-LC, HE-AAC v1/v2, SMPTE 302M). The assembly plan is hot-swappable at runtime — PMT versions bump in place, unchanged slots keep running, no packet gap.
Node Bus Matrix
One edge becomes a full distribution matrix. The PID bus is node-wide — any flow’s assembly pulls elementary streams from inputs owned by any sibling flow, with a master-clock-identity preflight that refuses cross-PTP-domain / cross-PCR-PLL mixes before they hit the wire. A three-pane crosspoint authoring surface (Sources / Matrix / Inspector) replaces nested form-pickers entirely. Click-to-wire and drag-and-drop equally first-class. Lawo-style orange marks pending; blue marks committed. Apply (N) commits per-flow atomic. Save salvo captures the routing as a Switcher preset.
Multiviewer — the wall is a flow
Composite node-local inputs onto one 1080p canvas and publish it as ordinary MPEG-TS — so the wall restreams over SRT, RTP, UDP, WebRTC, or CMAF, records, nests inside another wall, and produces thumbnails, with no separate wall processor and no new output code. Every tile carries its own x/y/width/height and paint order, so overlapping them is how a PiP is built. A source that stops keeps its last picture under an amber NO SIGNAL badge; a tile nobody patched reads UNASSIGNED — two badges because "the feed died" and "nobody routed this" send an operator to different places. Layouts, routings and head allocation are authored in the manager and deployed to whichever unit draws the wall. Nothing the wall does can apply backpressure to the feeds it is watching. Compositing is an opt-in build feature and every published release binary carries it — but the wall is CPU work in this first phase: each tile is its own single-threaded software decode and scale, and the canvas encodes on the processor even on a host with a spare GPU. The 64-tile limit is a configuration ceiling, not a sizing guide — size the wall to the host.
PES Switch — Access-Unit-Aligned Splice
Switch sources without going to black AND without re-acquire glitches. Per-slot splice_mode = "pes_aligned" holds the outbound stream at the from-leg’s last fully-emitted PES boundary, then commits on the to-leg’s next clean access unit — audio splices wait for a PUSI=1 PES with monotonically-past PTS; video splices additionally require an H.264 / HEVC IDR. AAC ADTS / LATM + H.264 / HEVC SPS sentinels refuse the splice on codec-parameter mismatch (sample rate, profile, resolution, bit-depth) and fall back to PMT-bump with a structured Warning. Per-Take splice_mode_override on any preset action.
AI-Assisted Configuration
Built-in AI assistant understands your network topology and can create, analyze, and troubleshoot media flows via a driver-aware action system. Supports OpenAI, Anthropic, and Gemini providers — credentials stripped before any LLM context.
Extensible Device Drivers
Bring third-party broadcast devices into the bilbycast manager via lightweight API gateway sidecars. Reference implementation for Appear X encoder/gateway platforms — same WebSocket protocol, same UI, same AI actions.
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.