AgentStack
SKILL verified MIT Self-run

Ndi Docs

skill-damionrashford-media-os-ndi-docs · by damionrashford

>

No reviews yet
0 installs
12 views
0.0% view→install

Install

$ agentstack add skill-damionrashford-media-os-ndi-docs

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Ndi Docs? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

NDI Docs

Context: $ARGUMENTS

Quick start

  • Find an NDI API / feature / spec detail: → Step 2 (search --query )
  • Read the full section for a topic: → Step 3 (section --page --id )
  • Grab a whole doc page: → Step 4 (fetch --page )
  • Prime cache for offline use: → Step 5 (index)

When to use

  • User asks "what port does NDI use?" or "what's NDI|HX?" or "does NDI 6 support HDR?"
  • Need to verify a wire-protocol detail before recommending config (mDNS 5353, TCP 5960, streams 5961+).
  • Need the exact SDK-vs-Advanced-SDK feature matrix (routing, multicast, access-control, compressed passthrough).
  • Need the official NDI 6 / HX3 / Agilex 7 feature list before claiming support.
  • Need to cite the canonical docs.ndi.video URL.
  • Integrating NDI with OBS → check DistroAV (not "obs-ndi" — that repo was renamed/forked).

Step 1 — Know the page catalog

The script only works against a fixed list of known docs.ndi.video pages plus the DistroAV GitHub README. Get the list:

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py list-pages

Common picks:

| Question | Page | |---|---| | "Which NDI SDK do I need?" | sdk-landing | | "What changed in NDI 6?" | tech-ndi6 | | "Release notes / version history" | sdk-release-notes | | "Which ports does NDI use?" | sdk-port-numbers | | "Does NDI support HDR? PQ / HLG?" | sdk-hdr | | "SDK vs Advanced SDK differences" | faq-sdk-vs-advanced | | "OBS + NDI setup" | distroav | | "NDI docs root / landing" | docs-root |

Read [references/pages.md](references/pages.md) for the full catalog + use-cases.


Step 2 — Search first

When the user names an NDI feature / port / flag / function, search across all pages:

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py search --query "multicast" --limit 5

When you know the page, scope it (faster, less noise):

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py search --query "5960" --page sdk-port-numbers

Output format per hit:

--- : — 

Use --format json for machine-parseable output.

First run downloads the page; subsequent runs hit the local cache at ~/.cache/ndi-docs/.


Step 3 — Read one section in full

When a hit points to a specific topic and you want the whole block:

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py section --page sdk-port-numbers --id discovery

--id accepts an anchor id OR a heading keyword fallback.


Step 4 — Fetch a whole page

Rarely needed; search/section are almost always better.

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py fetch --page tech-ndi6

Pair with --format json for structured output.


Step 5 — Prime the cache (optional)

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py index

Fetches every known page into ~/.cache/ndi-docs/. Override with export NDI_DOCS_CACHE=/path. Clear: uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py clear-cache.


Gotchas

  • NDI is proprietary. There is NO open-source libndi reimplementation. Every NDI-capable tool links against NewTek/Vizrt's binary libndi.so / Processing.NDI.Lib.dll / libndi.dylib that ships with the SDK installer. "Build NDI support from source" is not a thing.
  • The SDK cannot legally be redistributed inside ffmpeg binaries. That's why ffmpeg's NDI support was removed from mainline (non-redistributable) and why OBS-NDI was renamed to DistroAV and must be installed separately — it dlopens the system-installed NDI runtime.
  • Wire protocol uses THREE port families. mDNS discovery on UDP 5353 (standard Bonjour), messaging on TCP 5960, and each source opens streams starting at TCP/UDP 5961 and incrementing. Firewall rules must open 5353/udp + 5960-5999/tcp + 5960-5999/udp minimum, more if you host many sources.
  • NDI full uses the SpeedHQ codec (Vizrt's proprietary DCT-based codec, ~15:1 compression, visually lossless on broadcast material). It is I-frame-only. Bitrate is roughly 100–250 Mbps for 1080p60.
  • NDI|HX is H.264 or H.265 (the "HX" family — HX2 = AVC, HX3 = HEVC added in NDI 6). NDI|HX is NOT SpeedHQ; it's much lower bitrate (~8–20 Mbps) at the cost of latency (P/B-frames introduce encode/decode delay). Don't confuse SpeedHQ bitrates with HX.
  • NDI 6 adds native HDR (PQ and HLG) and 10/12/16-bit pixel formats. Before NDI 6, HDR was unofficial / metadata-only. If a user says "NDI HDR", clarify they're on NDI 6+ runtime on both sender and receiver.
  • Standard SDK is free for non-commercial use only. Commercial redistribution requires the Advanced SDK licence. Pricing is via Vizrt sales — not publicly listed.
  • Advanced SDK unlocks routing, access-control (groups), multicast sending, compressed passthrough (send already-encoded streams without re-encode), custom frame sync, and a C++ wrapper. Standard SDK is send/recv/find only.
  • NDI Bridge bridges NDI across subnets/WANs using TCP relay through a server. Required when mDNS can't traverse (LAN segmentation, VLAN isolation, site-to-site). Without Bridge, NDI is LAN-only.
  • NDI Discovery Server is an alternative to mDNS — when mDNS is blocked on a hostile network, run a Discovery Server and point clients at it via env var NDI_DISCOVERY_SERVER=ip:port.
  • DistroAV (the OBS plugin) is the successor to obs-ndi. The obs-ndi GitHub repo is archived/stale. Install DistroAV from github.com/DistroAV/DistroAV releases or via OBS's in-app plugin installer. It requires the NDI runtime installed separately (the SDK or the standalone Tools/Runtime installer).
  • Fallback when docs.ndi.video is down: the DistroAV README (page=distroav) is hosted on GitHub raw and covers install + hotkey + common config.
  • Cache is per-page only, not per-NDI-version. After a NDI release shifts spec pages, clear-cache then index.
  • The script is stdlib-only — no pip install. Python 3.9+.

Examples

Example 1 — "What ports does NDI need open on the firewall?"

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py search --query "port" --page sdk-port-numbers

Example 2 — "Does NDI support HDR PQ?"

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py search --query "PQ" --page sdk-hdr
uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py fetch --page sdk-hdr

Example 3 — "What's the difference between the SDK and the Advanced SDK?"

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py fetch --page faq-sdk-vs-advanced

Example 4 — "What did NDI 6 add?"

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py search --query "NDI 6" --page tech-ndi6 --limit 10

Example 5 — "OBS + NDI setup steps"

uv run ${CLAUDE_SKILL_DIR}/scripts/ndidocs.py search --query "install" --page distroav

Troubleshooting

Error: unknown page: foo

Cause: Name isn't in the catalog. Solution: Run list-pages for valid names.

Error: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED]

Cause: macOS Python missing certs. Solution: Run /Applications/Python\ 3.x/Install\ Certificates.command or set SSL_CERT_FILE. Don't disable SSL verification.

Search returns zero hits

Cause: Term doesn't exist on the selected page or docs.ndi.video moved the page. Solution: Drop --page to search all pages. Try broader query. Some details live in the DistroAV README rather than docs.ndi.video.

Cache stale after an NDI SDK release

Solution: clear-cache then index.


Reference docs

  • Full URL catalog, wire-protocol summary, and SDK-vs-Advanced-SDK matrix → references/pages.md.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.