WAVE · Media Engine

Every AV protocol,
finally on the same clock.

Dante, ST 2110, NDI, SRT, MoQ and more — one disciplined clock, one integrity fingerprint, one sync lock, shared by all 15 adapters. Your signal crosses any protocol boundary and stays in time and provably intact.

● live clock, adapters & capabilities answer now — no auth

DanteST 2110NDISRTMoQAES67

One core, not fifteen re-implementations.

In pro AV, every protocol is its own island — its own clock, its own idea of "in sync," its own way of losing frames silently. Timing, integrity, AV-sync, reliability and metering are built once — as a shared, dependency-free C++17 core — and each protocol is a thin duplex adapter that snaps on. The guarantees aren't re-implemented (and re-broken) per transport; it's the same code under every one.

  ingest / egress (any of 15 protocols)
    │
    ▼   one clock · one integrity fingerprint · one sync lock
  POST /v1/engine ─▶ {protocol, stream}
    │
    └─ auth + metering federate through api.wave.online
clockGET /v1/engine/clock → 200 {source, media_time_100ns, locked}
adaptersGET /v1/engine/adapters → 15 adapters, each in + out
capabilitiesGET /v1/engine/capabilities → 18 capabilities
licenseApache-2.0 · dependency-free C++17

One engine under every protocol WAVE speaks.

dante.wave.online, the NDI edge, and every native transport consume this one clock — they don't reinvent it. As the metered bridge plane comes online, any-to-any protocol bridging becomes a single call, authed and metered through api.wave.online, with NMOS (IS-04/05/07/08) discovering and wiring the graph.

Explore capabilities →

Federated — auth, entitlement, and metering run through api.wave.online; the discovery routes above (clock, adapters, capabilities) are public and unmetered.