Real-time media cloud
AVFlow connects LiveKit, Daily, Jitsi, Agora, RTMP, and more to layouts, AI nodes, and outputs you choose. Describe a Job in JSON, submit it once, and run countless combinations — from stream relays to AI-powered shows.
How it works
Name your inputs, wire them through processing, point them at outputs. Below is a complete Job that mixes everyone in a LiveKit room into a grid and streams it to RTMP — nothing omitted.
{
"name": "room-to-rtmp",
"sources": [
{
"name": "room",
"type": "livekit",
"config": { "serverUrl": "wss://your-project.livekit.cloud", "token": "eyJ..." }
}
],
"nodes": [
{
"name": "video",
"type": "video_mixer",
"inputs": ["room"],
"config": { "layout": { "mode": "grid" } }
},
{ "name": "audio", "type": "audio_mixer", "inputs": ["room"] }
],
"sinks": [
{
"name": "stream",
"type": "rtmp_push",
"inputs": ["video", "audio"],
"config": {
"urls": ["rtmp://live.example.com/app/stream-key"],
"encoding": { "videoCodec": "h264", "audioCodec": "aac" }
}
}
]
} curl -X POST "https://api.avflow.dev/v1/jobs" \
-H "Authorization: Bearer $AVFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d @room-to-rtmp.json Re-POST the same name to reconfigure it live. Change the layout or swap an output on a running pipeline without restarting the stream.
Every example on this site is checked against the engine's own validator in CI, so what you copy is a Job the API accepts.
Quick start →Why AVFlow
Pick inputs, processing, and destinations independently. The same Job model covers a simple relay or a multi-output mix with captions and AI.
Connect the RTC platforms and streaming protocols you already use — no custom ingest SDK required.
livekitdailyjitsiagorawheprtmp_pullsrt_pull
Combine sources, layout nodes, AI nodes, and outputs in one Job. Grid shows, speaker layouts, and custom multi-region scenes all use the same model.
video_mixeraudio_mixer
Add real-time captions, live translation, or a speech-to-speech agent — then route the text to rooms, CDNs, or storage alongside the media.
asrtranslatevoice_agent
Push to YouTube and Twitch, record to S3, and publish back into a room — up to three sinks from one Job.
rtmp_pushsrt_pushsegmentwhipimage
Capture slides, scoreboards, or lower-thirds from a web page and blend them into the live mix.
web_capture
Submit, list, inspect, and stop Jobs with one REST API. Re-POST a name to reconfigure a running pipeline; webhooks tell your app when state changes.
POST /v1/jobs
Use cases
Each one is a working demo with its full Job JSON — not an illustration. Read why each pipeline is shaped the way it is, then run it yourself.
Record a call in speaker layout to your own storage, and get a transcript you can summarise.
Read it → 02A 1080×1920 guest stream whose layout you retarget mid-broadcast without dropping the output.
Read it → 03Broadcast an audio-only room as 9:16 video that reads well with the sound off.
Read it → 04Publish a translated voice track back into the room for listeners to switch to.
Read it → 05A speech-to-speech agent that listens, answers, and can be interrupted.
Read it → 06Review every participant separately, so a finding points at a person rather than a composite.
Read it →Copy an example, POST to the API, and go live in minutes.