Stream Performance
This guide is for when previews drop frames, latency builds up, or detection is unstable under load.
Goal
You are done when:
- Stream is Live.
- Preview is stable.
- CPU/GPU are not saturated by avoidable decode work.
Step 1: Simplify
While debugging:
- one stream
- one pipeline
- Pipelines grid at
1x1
Multiplex layouts are useful, but add overhead.
Step 2: Check Processes
- Open Systems > Processes.
- Sort by CPU.
- Identify the top consumers.
If a single process is pegged, fix capture settings before deep pipeline tuning.
Step 3: Check Logs
- Open Systems > Logs.
- Check:
helios-engine.serviceKernel (dmesg)
Look for:
- decoder errors
- USB disconnects
- camera driver failures
Step 4: Use Better Formats
In stream registration or stream settings:
- Prefer NV12 + nv12-luma when available for mono-style CV.
- Avoid heavy decode paths if you do not need them.
See: Register stream
Step 5: Use The Benchmark Tool
The register modal includes a benchmark panel.
Use it to compare format/decoder/encoder combinations and apply the best result.
Step 6: Verify Output Selection
On the stream page:
- confirm the output selector is set to the output you intend
- if the output selector says "Loading outputs", wait for it to populate
See: Stream page