videoflow’s documentation
Videoflow is a Python framework for building distributed video and stream processing pipelines. You describe your pipeline once as a directed acyclic graph of producers, processors and consumers, and Videoflow runs it as a set of independent workers that communicate over a NATS JetStream message broker.
The same graph runs two ways with no code changes:
- Locally
As one OS subprocess per node — for fast development and testing.
- On Kubernetes
As one container per node — with per-node scaling, GPU scheduling, health probes and autoscaling for production.
- Developer friendly
Even complex pipelines are defined in a small
build_flow()factory of a few lines of code.- Reliable
At-least-once delivery with ack-after-process, per-message de-duplication, retries and a dead-letter queue, so a crash or a bad message never silently loses or double-emits data.
- Easy to extend
Writing your own producers, processors and consumers is straightforward — sync or async, with an optional runtime context.
- Language-agnostic
Components can be written in any language, shipped as container images, and dropped into a Python-authored graph by reference — the basis for a component marketplace.
- Free and open source
Videoflow uses the MIT License.