Skip to content
Console

Examples

Download JSON and submit with curl -d @file.json. Replace tokens, URLs, and storage credentials before running.

Every file here is validated against the engine’s own Job.EnsureReady() in CI — the same call POST /v1/jobs makes — so none of them is a Job the API would reject.

00-hello-mix.json is the smallest complete pipeline: one LiveKit room in, a grid mix, RTMP out. Nothing optional is set, so it doubles as a template to add to.

These come from avflowhq/demos — a runnable app that submits each of them against a live room. Each use case page explains why the pipeline is shaped the way it is.

Use caseFileRead more
Meeting recording & notes20-meeting-recording-notes.jsonUse case
Vertical co-host switching21-cohost-vertical-switch.jsonUse case
Captioned vertical voice room22-voice-room-captions.jsonUse case
Live interpretation channel23-live-interpretation.jsonUse case
AI co-host in the room24-ai-voice-agent.jsonUse case
Per-participant moderation25-moderation-per-participant.jsonUse case
ExampleFileGuide
Minimal room → RTMP mix00-hello-mix.jsonQuick start
RTMP relay01-single-stream-relay.json—
Grid recording02-room-grid-recording.jsonRecord grid
Speaker layout03-speaker-layout.json—
Custom layout show04-custom-layout-show.json—
Custom multi-region layout05-custom-director-layout.json—
One bitrate rendition06-bitrate-rendition.json—
Multi-sink output08-multi-output-composite.json—
Mix LiveKit → RTMP10-livekit-mix.jsonMix guide
Mix Jitsi → RTMP11-jitsi-mix.json—
WHEP relay13-whep-relay.json—
WHIP publish14-whip-push.json—
Daily recording12-daily-recording.json—
Terminal window
curl -X POST "https://api.avflow.dev/v1/jobs" \
-H "Authorization: Bearer ${AVFLOW_API_KEY}" \
-H "Content-Type: application/json" \
-d @public/examples/10-livekit-mix.json

A Job may contain at most one video encoder after sink encoding expansion, so a multi-rendition ladder is not one Job. Submit one Job per rendition — same source URL, a different name, and a different videoBitrateBps — and stop them independently. 06-bitrate-rendition.json is one rung.

Within a single Job, several mux sinks can share one encoder as long as their encoding blocks are identical; that is how 08-multi-output-composite.json feeds RTMP and HLS at once.