Skip to content

Use cases

Problems Tatolab helps with, each with an example of streams that solve it, what you'd write yourself, and what isn't built yet.

These pages start from a problem, not from a feature list. Each shows streams that solve it, with code you can run, says which parts you’d write yourself, and lists the limits that matter for that job.

Problem Where it comes up
An agent should see what’s happening now Operations, support, monitoring: anywhere a person checks a screen to answer a question
Several programs need the same camera Security and operations cameras, labs, studios: a detector, a recorder and a dashboard on one camera
One camera, many destinations Streamers, teachers, small productions: a look applied once, then a call, OBS and a recording
Several sources, one record Research labs: video, audio and instrument readings recorded together and lined up afterwards
  • Streams share instead of copying. The stream that owns a device exposes its output; everything else reads it from streams of its own, which start, stop and change independently. A recorder, a detector or a dashboard can come and go without touching the camera.
  • Your nodes can use any package. Each one runs in its own process with your project’s packages, so a model, a driver or an HTTP client is one uv add away, and one failing node doesn’t take the rest down.
  • Everything is visible. tatolab graph shows what’s running and what’s been dropped, each stream keeps a JSON Lines log, and an agent can see the same things.

Tatolab ships the parts with deadlines: cameras the operating system sees, microphones and speakers, windows, hardware H.264 and H.265, Opus and MP4 recording, and a virtual camera on Linux. Integrations are nodes you write with the library you already use:

  • IP cameras over RTSP, and anything with a vendor SDK
  • Alerts, webhooks and dashboards
  • Message queues and databases
  • RTMP, SRT and NDI

Write a node covers sources driven by a timer or by their own thread, which is the shape most integrations take.

  • Platforms. Linux on x86_64 with a Vulkan GPU, tested on NVIDIA, and Apple silicon Macs with macOS 15 or later.
  • Cameras. On Linux, CameraSource reads uncompressed video only, so most USB 2.0 webcams run at 5 to 10 frames per second in HD; there are no exposure, focus or frame-rate settings yet. See Built-in nodes.
  • Failures. A Python node that crashes stays down, and shows as failed in tatolab graph, until its stream loads again; the rest of the stream keeps running. Watch for outputs that go quiet.
  • Recordings. A kept stream starts its recording over each time it reloads, so record from a separate stream. See Recordings and restarts.
  • Not a control system. Tatolab isn’t hard real-time, isn’t a safety system, and has no certifications.