Municipal and enterprise streaming

Every client gets their own broadcast — live, recorded, and on their site. Isolated workspaces. You stay in control.

Cities, schools, and companies use Flumen to go live without sharing a platform. You decide how many streams they can run and how much they can store. Their operators never see another tenant.

01

Encoder

OBS, vMix, hardware, or bonded cellular. Point SRT or RTMP at the client’s ingest IP. Nothing else is open.

02

Vultr ingest

One small VPS per client. Public site at town.flumen.live. Encoders push SRT/RTMP to town.ingest.flumen.live.

03

Cloudflare edge

VODs land in R2. Clients, library, fleet, and storage caps live in your D1. Sign-in stays with the console.

Live

SRT and RTMP, same channel.

Each channel has a stream key, an SRT passphrase, auto-record, optional DVR, and a restream list. Operators can work one client at a time via the workspace switcher.

  • Primary + overflow channels per client
  • Restream to YouTube, Twitch, Facebook, or custom RTMP
  • SRT latency profiles, path probe, and 10-hour soak tests
Sanctuary program feed
Chamber · program
SRT · RTMP

SRT latency

120 ms is a city hop. A 10-hour council session is a different budget.

Haivision’s floor is 4 × RTT, then ARQ, jitter, and clock drift. At 20 ppm the TSBPD window walks 72 ms every hour. Without a drift tracer the stock libsrt default is done in under two hours. The lab probes the path, writes ffmpeg and Haivision URLs, and soak-tests 10–24 hour contributions in a few seconds.

Path-aware profiles

Studio 40 ms through bonded 1.5 s and GEO 4.5 s. Apply to a channel; the ingest URL rewrites in microseconds for ffmpeg and milliseconds for Haivision.

10-hour soak

Time-compressed TSBPD, NAK recovery, bonded handoffs, and ingest RSS. Compare 80 / 120 / recommended / 2× before a long occupancy.

Drift tracer

libsrt 1.5 holds residual error under 30 ms over 12 hours. Turn it off to see why a 120 ms metro URL fails a Sunday-to-evening event.

Library

Every live becomes an object. Playlists are first-class embeds.

House of worship

Sunday program · archive to R2

Company / events

Restream to YouTube, Twitch, custom RTMP

Municipality

Council session · public site + playlist embed

Ingest fleet

A new client spins a new VPS. Firewall locked to ingest ports.

Per-client Vultr VPS

Each client gets its own ingest box in the region you pick. The console on flumen.live calls Vultr’s API. Destroy the instance when the contract ends.

Default-deny

1935/tcp RTMP, 1936/tcp RTMPS, 8890/udp SRT. SSH only from your management prefix if you add it.

Cloudflare throughout

The console is a Worker on flumen.live. Recordings land in R2 with a per-client cap. Catalog and quotas live in D1. Over quota locks auto-record; ingest still runs.

Admin roster

Create, suspend, and type-to-confirm destroy. Caps are per client. Recording stops at 100%. Warn at 80%.

Embed

One iframe for a video. A second for a playlist.

Drop players on church sites, tournament hubs, or civic pages. Restrict by domain. Live watch pages use the same player as VOD.

Team permissions

Owner, admin, operator, viewer. Operators are scoped to the clients you assign — one, several, or none until they’re ready. Viewers can watch the library; they cannot rename, trim, or delete.

<iframe
  src="https://flumen.live/e/vpub_…"
  allow="autoplay; fullscreen"
  allowfullscreen
></iframe>

<iframe
  src="https://flumen.live/pl/ppub_…"
  allow="autoplay; fullscreen"
></iframe>