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.
Start here
Section titled “Start here”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.
End-to-end use cases
Section titled “End-to-end use cases”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 case | File | Read more |
|---|---|---|
| Meeting recording & notes | 20-meeting-recording-notes.json | Use case |
| Vertical co-host switching | 21-cohost-vertical-switch.json | Use case |
| Captioned vertical voice room | 22-voice-room-captions.json | Use case |
| Live interpretation channel | 23-live-interpretation.json | Use case |
| AI co-host in the room | 24-ai-voice-agent.json | Use case |
| Per-participant moderation | 25-moderation-per-participant.json | Use case |
Building blocks
Section titled “Building blocks”| Example | File | Guide |
|---|---|---|
| Minimal room → RTMP mix | 00-hello-mix.json | Quick start |
| RTMP relay | 01-single-stream-relay.json | — |
| Grid recording | 02-room-grid-recording.json | Record grid |
| Speaker layout | 03-speaker-layout.json | — |
| Custom layout show | 04-custom-layout-show.json | — |
| Custom multi-region layout | 05-custom-director-layout.json | — |
| One bitrate rendition | 06-bitrate-rendition.json | — |
| Multi-sink output | 08-multi-output-composite.json | — |
| Mix LiveKit → RTMP | 10-livekit-mix.json | Mix guide |
| Mix Jitsi → RTMP | 11-jitsi-mix.json | — |
| WHEP relay | 13-whep-relay.json | — |
| WHIP publish | 14-whip-push.json | — |
| Daily recording | 12-daily-recording.json | — |
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.jsonBitrate ladders
Section titled “Bitrate ladders”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.