ProventusNova
Free Open-Source Tool

See Where Your Jetson Pipeline Actually Spends Its Time.

gst-profile is a free, open-source profiler for GStreamer on NVIDIA Jetson. Point it at a pipeline and it shows you, live, which element is burning CPU, where a copy sneaks buffers off the GPU, and which fix pays off. No account, no dependencies on the board.

Install as a Claude Code skill

/plugin marketplace add ProventusNovaLLC/pn-tools
/plugin install pn-tools@pn-tools

Or clone the repo and run the tool directly: it is stdlib-only Python, with zero packages to install on the board.

gst-profile analyze
gst-profile verdict
  pipeline latency p95 26.7 ms (frame period 27.8 ms)
  where the time goes: nvv4l2h264enc0 33% · nvvconv1 22% · videoconvert0 17%

  !![high  ] ZC    Zero-copy broken: buffers leave GPU memory and return
          fix: keep the path in device memory end to end (nvvidconv / NVMM caps)
  ! [medium] SW    videoconvert0 runs in software; nvvidconv is available
          fix: replace videoconvert with nvvidconv
  ! [medium] QUEUE no queue before the encoder: whole pipeline on one thread
          fix: insert a queue upstream of nvv4l2h264enc0
    [info  ] HOT   nvv4l2h264enc0 takes 33% of per-element processing time

  scoping: proventusnova.com/contact

Real output, abridged, from a capture on a Jetson Orin NX (JetPack 6). Your pipeline will name different elements.

What it does

Ranks where the time goes.

One command turns a running pipeline into a ranked verdict: the hottest element, its share of per-frame processing, and a fix matched to the severity.

Catches the expensive Jetson mistakes.

A zero-copy break (buffers leaving GPU memory and coming back), a software element where a hardware block exists, a missing queue that pins the whole pipeline to one thread.

Runs live.

run and wrap open a web panel that streams the pipeline graph, a timeline, and system load as the capture runs. Or go headless and read the verdict in your terminal.

Tells you what it cannot prove.

Findings verified on real hardware report at full severity; everything else is labeled a heuristic, so you know which lines to trust.

Why trust it

The rules that report at full severity were earned on a golden bad/good pipeline pair on a real Orin NX (JetPack 6). The bad pipeline had to produce exactly that finding and its clean twin had to stay silent before the rule was allowed to claim it. Profiler overhead is about 5 percent. If a finding is not yet proven on hardware, the output says so.

Severity earned on real Jetson hardware, not guessed from docs.

The AI assistant runs it for you

The same method ships as a free Agent Skill. Install it and your AI assistant runs the profiler for you, reads the verdict, explains each finding in plain language, and hands off to our camera bring-up skill if the pipeline is starved at the source.

The verdict found it. Now what?

If gst-profile shows you the bottleneck but the fix is a bigger rework than you want to own, that is what we do. Book a scoping call and bring the verdict.

Book a scoping call