On air · 24/7 scheduled playout

Run a 24/7 channel
straight from your object storage.

ModernPlay uploads prepared media to your own S3 or R2 bucket, compiles a weekly schedule into an exact rolling plan, and drives GPU-encoded RTMP output to your CDN — and keeps the channel on when a file goes missing, an encoder dies, or the host reboots.

Ingest
S3 / R2 direct
Encode
FFmpeg + NVENC
Egress
RTMP / RTMPS
Record
Durable as-run

01 The platform

Playout software usually fails at 03:00.
This one is built for 03:00.

ModernPlay is a scheduled-VOD playout system for broadcast and FAST channels. It runs on your own hardware, reads from your own object storage, and is designed around the three failure modes that actually cost operators airtime.

A

Continuity is the product

A missing file, a rejected codec, or a dead encoder cannot take the channel off air. ModernPlay falls back to channel filler, then a station slate, then generated black and silence — clamped to the exact gap it has to cover.

B

The clock is the contract

Schedules compile into an absolute rolling plan with one-shot boundary timers, IANA timezones, broadcast-day starts, and DST handled deterministically. Blocks start when you said they would, not when a loop happens to finish.

C

Everything is evidence

Every transition, fallback interval, and outage lands in a durable as-run record you can query and export. What aired is a database row, not a guess reconstructed from encoder logs.

02 The signal path

From a file in a bucket
to a channel on a CDN.

Six stages, no manual step in the middle. Once the week is published, the channel runs itself — including through the parts that normally need a human.

  1. 00

    Upload to your bucket

    Browser-direct multipart upload straight into your S3 or R2 bucket — no staging server in the middle, no SFTP, files up to 5 GB.

    S3 · R2 · multipart
  2. 01

    Probe and normalise

    Every accepted file is probed and transcoded once into a house mezzanine: H.264 High, 25 fps CFR, closed 2-second GOP, AAC-LC 48 kHz stereo. Your source object is kept untouched.

    ffprobe · eligibility · mezzanine
  3. 02

    Build the week

    Loops, blocks, reusable templates, day copy, and non-playable planning notes. Validation runs as you edit, so a broken week is caught before it airs.

    weekly builder · templates
  4. 03

    Compile and cache

    The schedule compiles into a versioned rolling plan of absolute intervals. Everything it references is pulled to the local disk cache and pinned before the daemon is allowed to accept it.

    rolling plan · pinned cache
  5. 04

    Encode and push

    FFmpeg on an NVIDIA GPU encodes one fixed H.264/AAC profile per channel and pushes RTMP or RTMPS to your CDN, Wowza, or any ingest endpoint that takes it.

    NVENC · RTMP / RTMPS
  6. 05

    Watch and prove

    Operator console, Prometheus metrics, per-channel email and webhook alerts, an audience-side HLS probe, and an as-run log you can export.

    console · alerts · as-run

03 Capabilities

Everything a channel needs
to run unattended.

Access is role-based and scoped per channel, with configure and control treated as separate permissions — a floor operator can start a channel without being able to reconfigure its destination.

Scheduling

Weekly schedule builder

Loops, timed blocks, reusable templates, drag-and-drop ordering, multi-day copy, and inline planning notes that never air.

Timezone-correct compilation

IANA timezones, configurable broadcast-day start, midnight rollover, and DST resolved deterministically into absolute intervals.

Exact boundaries

One-shot next-boundary timers drive normal transitions, engineered to a p95 timing error of 2 seconds or better in qualification.

Media

Object storage as the origin

Media lives in your S3 or R2 bucket. The local cache is a rebuildable performance layer, prefetched and pinned for the active plan.

Eligibility you can read

Uploads come back processing, ready, or rejected — with the actual reason: streams, container, codec, dimensions, frame rate, pixel format, audio.

One house mezzanine

Accepted media is normalised once at ingest so every clip on the channel shares an identical stream layout and timebase. No surprise concat drift.

On air

GPU encode, fixed profile

FFmpeg with NVENC drives one approved H.264/AAC output profile per channel, pushed over RTMP or RTMPS with a destination preflight check.

Fallback chain

Channel filler, then station slate, then generated black and silence — bounded to the remaining gap, with every fallback interval recorded.

Self-healing state

Desired state is durable. After an encoder crash, daemon restart, or host reboot, playout resumes at the position the wall clock says it should be.

Operations

Master control console

Desired versus actual state, now and next, remaining time, cache readiness, drops, restarts, live preview, and start/stop for assigned channels.

Metrics and paging

Prometheus metrics plus per-channel alert rules with severity, dwell time, and cooldown — delivered by email or generic webhook.

As-run and EPG

Durable as-run with transitions, fallback, and outage intervals plus export; XMLTV output and an embeddable schedule widget for your audience.

04 Deployment

It runs on your node,
under your control.

ModernPlay is not a multi-tenant SaaS you upload to. It is installed on a GPU host you own or rent, next to a database and a cache volume, talking to your bucket and your distribution layer. Your media, your keys, your network.

Channel capacity depends on your GPU, output profile, and schedule shape, so we size and qualify the node with you during commissioning rather than quoting a number that will not survive your workload.

FAST and streaming channels

Linear channels distributed through a CDN or an aggregator that needs a continuous, well-timed feed.

Broadcasters with a VOD library

Teams who already hold prepared programming in object storage and want it on air without a traditional playout rack.

Networks and ministries

Multi-channel operators who need scheduling, monitoring, and as-run evidence under their own control and their own domain.

05 Scope, stated plainly

What it does today —
and what it does not.

Playout is bought on trust, so here is the boundary before you ask for it. The right-hand column is deliberately not sold as shipped. If something there is a hard requirement for your channel, tell us in your enquiry and we will tell you honestly where it sits.

On air today

  • S3/R2 browser-direct ingest with eligibility reporting
  • Ingest normalisation to a single house mezzanine
  • Weekly builder: loops, blocks, templates, notes
  • Timezone and DST aware rolling plan compilation
  • NVENC playout with fixed H.264/AAC output profile
  • RTMP and RTMPS egress with destination preflight
  • Filler, slate, and black/silence fallback chain
  • Durable desired state with automatic recovery
  • Operator console with live preview and controls
  • Prometheus metrics, alert rules, email and webhook
  • As-run log, export, XMLTV, embeddable schedule widget
  • Scripted install, backup, restore, upgrade, rollback

Not shipped · roadmap

  • Logos, clocks, tickers, and lower-third graphics
  • Live break-in, RTMP/SRT ingest, and manual switching
  • SCTE-35 ad markers and SRT egress
  • Multi-node cache distribution and active/passive HA
  • Multi-tenant organisations and self-serve billing

Currently in controlled pilot rather than open sale. Deployments are commissioned one at a time, with us on the call.

06 Questions

Before you
get in touch.

Do you host the channel for us?

No. ModernPlay is installed on a GPU host you own or rent, alongside its database and cache volume. We commission it with you, and you keep control of the media, the keys, and the network path.

What does it cost?

There is no price list, because there is no one-size deployment. Scope depends on channel count, host, storage, distribution, and how much of the commissioning and operations you want us to carry. Send an enquiry and we will scope it against your actual channels.

What media does it accept?

MP4 files up to 5 GB, uploaded straight to your bucket from the browser. Each accepted file is probed and normalised once into a house mezzanine so every clip on air shares one stream layout. Anything that cannot be made to conform is rejected with the reason, before it can reach a schedule.

Where does the output go?

Wherever takes RTMP or RTMPS: a CDN ingest, a Wowza server, or another packaging layer. ModernPlay produces the continuous encoded feed and probes the resulting HLS to confirm the audience side is actually up. It does not package or serve HLS itself.

How many channels can one node run?

That is a GPU, profile, and schedule question, so we measure it rather than guess. Capacity qualification is part of commissioning, and the monitoring that proves it is part of the product.

What happens when something breaks at 3am?

Missing or invalid media is skipped and covered by filler, slate, or generated black and silence. Encoder crashes, daemon restarts, and host reboots resume at the position the wall clock says should be airing. Alert rules page you by email or webhook, and the as-run log records exactly what the audience got.

Bespoke setup · by enquiry

Tell us about your channels.

Every ModernPlay deployment is commissioned, not self-served. Send us the shape of your operation — how many channels, where the media lives, where the stream has to land — and we will come back with whether it fits and what standing it up looks like.