Skip to content
Console

Introduction

AVFlow runs Jobs — JSON documents that describe a real-time audio/video pipeline. Each Job lists sources (inputs), optional nodes (mixing, ASR, etc.), and sinks (outputs). AVFlow wires them into a DAG and keeps the pipeline running until your policies say stop.

  • Mix a LiveKit or Daily room to RTMP / SRT / WHIP
  • Relay pull streams (rtmp_pull, file_pull, etc.) directly to outputs when no layout is needed
  • Record composite layouts to object storage (HLS)
  • Capture a web page (web_capture) into a live mix
  • Transcode to multiple bitrates from one source
{
"name": "my-job",
"sources": [{ "name": "in", "type": "livekit", "config": { } }],
"nodes": [{ "name": "mix", "type": "video_mixer", "inputs": ["in"], "config": { } }],
"sinks": [{ "name": "out", "type": "rtmp_push", "inputs": ["mix"], "config": { } }]
}

Every component uses the same shape: { "name", "type", "config" }. Nodes and sinks connect upstream components through inputs.

Submit and manage jobs with an API key from the Console:

POST https://api.avflow.dev/v1/jobs
GET https://api.avflow.dev/v1/jobs
GET https://api.avflow.dev/v1/jobs/:name
DELETE https://api.avflow.dev/v1/jobs/:name
Authorization: Bearer <api-key>

See Quick start for a full curl example.