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.

Platform architecture

Live on Cloudflare Stream · VOD on R2

  1. 01 · Contribution

    OBS · vMix · WHIP

    RTMPS, SRT, or WHIP into a Cloudflare Stream live input. Each Flumen channel maps to one live input.

  2. 02 · Cloudflare Stream

    Ingest, transcode, live play

    Stream hosts contribution and live playback (Player / HLS / DASH / WHEP). Paid restream outputs and LL-HLS are Stream features gated per client.

  3. 03 · Flumen Worker

    Control plane + archive

    D1 catalog, console, webhooks. On recording ready: download → CRC32C → R2 → delete Stream video.

  4. 04 · R2 library

    VOD source of truth

    Watch, embed, and download never bill Stream VOD bandwidth. Archives live in flumen-vod.

  • Live contribution

    Encoders publish RTMPS, SRT, or WHIP to Cloudflare Stream live inputs. Stream keys and passphrases are per channel.

  • Live playback

    Viewers use Stream Player, HLS, DASH, or WHEP. Delivery is Cloudflare Stream CDN end to end.

  • Archive

    When a take is ready, Flumen copies it to R2 with checksum verify, then deletes the Stream VOD. Library playback is R2-only.

Live

SRT and RTMP, same channel.

Each channel is a Cloudflare Stream live input with RTMPS, SRT, and WHIP credentials, auto-record, and optional LL-HLS. Residents and embeds watch from Stream CDN. Paid restreams use Stream live outputs.

  • Primary + overflow channels per client
  • Restream via Stream live outputs when the pack is on
  • Copyable RTMPS, SRT, and WHIP credentials per channel
Sanctuary program feed
Chamber · program
SRT · RTMP

Ingest

One live input. Every protocol Stream returns.

Each Flumen channel maps to a Cloudflare Stream live input. Operators copy RTMPS, SRT, and WHIP for contribution, plus Stream Player, HLS, DASH, and WHEP for live playback — all from the Ingest console.

Contribution URLs

RTMPS URL and stream key, SRT with passphrase, and WHIP when Stream provides it. Rotate keys from the channel page.

Live playback

Stream Player, HLS / LL-HLS, DASH, and WHEP — the same endpoints residents and embeds already use.

Latency profiles

Studio through GEO profiles on each channel. Apply a profile and the SRT URL rewrites for ffmpeg and Haivision dialects.

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

Cloudflare Stream

A new client gets its own site and Stream live inputs. All media runs on Cloudflare.

Stream live inputs

RTMPS, SRT, and WHIP per channel. Live Player, HLS, DASH, and WHEP for viewers — hosted entirely on Cloudflare Stream.

Tenant isolation

Stream keys and live-input IDs keep clients apart. Operators only see the clients you assign.

R2 library

Takes archive to R2 with checksum verify; Stream VOD is deleted. Catalog and quotas live in D1.

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 uses Stream Player; VOD plays from R2 through Flumen.

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>