BYOC (Bring Your Own Container) lets you deploy custom AI models on the Livepeer network. The architecture has three layers: your model code wrapped in aDocumentation Index
Fetch the complete documentation index at: https://na-36-handover-docs-v2-into-docs-v2-dev-20260518.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
FrameProcessor, a StreamServer that handles trickle transport, and a Docker container that the orchestrator manages.
Three-layer architecture
VideoFrame objects (raw pixel data + PTS timestamp) and returns processed VideoFrame objects. Your model logic goes in process_frame().
StreamServer wraps the FrameProcessor and handles trickle transport: subscribing to input frames, calling your processor, and publishing output frames. PyTrickle provides this out of the box.
Docker container packages the StreamServer, FrameProcessor, model weights, and dependencies. The orchestrator manages the container lifecycle via the Docker socket.
Capability registration
The orchestrator advertises your container’s capabilities to the network throughaiModels.json:
| Field | Description |
|---|---|
pipeline | Always live-video-to-video for BYOC containers |
model_id | Your chosen model identifier; gateways use this to route requests |
price_per_unit | Wei per compute unit (orchestrator-set) |
warm | Whether the model is pre-loaded in GPU memory |
container | Docker image reference |
url | Local HTTP endpoint where the container listens |
GetOrchestratorInfo response.
Health check contract
Every BYOC container must expose a/health endpoint:
/health to determine container readiness. A container that does not return {"status": "ok"} is not advertised to gateways.
The BYOC quickstart walks through building and registering a container. The FrameProcessor reference covers the processing API.