What WAVE speaks
One API in front; the full media stack behind it.
Contribution & ingest
SRT, RTMP(S), WHIP, RIST, NDI, MPEG-TS, SDI.
Delivery & playback
HLS, LL-HLS, DASH, CMAF, MoQ (Media over QUIC) + WebTransport, WebRTC (WHEP), progressive MP4.
Audio over IP
AES67, Dante, OMT, MXL.
Codecs
Video: H.264 / AVC, H.265 / HEVC, AV1. Audio: AAC, Opus, FLAC, PCM.
Captions & metadata
WebVTT, SRT subtitles, TTML / IMSC, CEA-608 / 708, live transcription.
Content protection
Widevine, PlayReady, FairPlay, CENC multi-DRM.
Agent & API
HTTPS, HTTP-402 (x402), WebSocket, SSE, webhooks.
One call, any transport
The API doesn't change shape per transport. Creating a stream takes a protocol field; everything else about the call is identical:
curl -X POST https://api.wave.online/v1/streams \
-H "Authorization: Bearer $WAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "demo", "protocol": "srt"}'
Swap srt for webrtc, rtmp, or hls and nothing else in the request changes. See the live breakdown at wave.online/protocol, and each ingest/interchange transport's own page under Fabrics.