Skip to main content

A CLI to control NDI-capable PTZ cameras via a joystick.

Project description

ndi-ptz

This is a CLI to control an NDI-enabled PTZ camera with a joystick.

Currently, everything in here requires a custom cyndilib, see https://github.com/nocarryr/cyndilib/pull/25.

Installation

uv tool install ndi-ptz

# or
pip install ndi-ptz

You also need to install the NDI Runtime, unless you have the NDI Tools or the NDI SDK installed

For further options, like choco or brew, consult the DistroAV wiki.

Quick-Start

$ ndi-ptz list-sources
Looking for NDI sources in the next 5 seconds
TAIL_AIR_006666 (OBSBOT)

$ ndi-ptz list-joysticks
Looking for joysticks in the next 5 seconds
Nintendo Switch Pro Controller (0)

$ ndi-ptz control --source-name "TAIL_AIR_006666 (OBSBOT)" --joystick-instance 0

Supported Joysticks

Currently only the following joysticks are supported:

Nintendo Switch Pro Controller

  • You must hold L and R constantly to control the PTZ.
  • Use the left stick to control pan (left/right) and tilt (up/down).
  • Use the right stick to control the zoom (up/down).
  • Press the right stick to return the camera to the home position.
  • Hold the A button to trigger the autofocus.

Development

This project is managed with UV.

Build & Publish

# edit the project version in pyproject.toml
uv sync
git commit -m "Prepare 0.1.4" .
git tag '0.1.4'
rm -rf dist
uv build
uv publish
git push --tags
git push

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ndi_ptz-0.1.4.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ndi_ptz-0.1.4-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file ndi_ptz-0.1.4.tar.gz.

File metadata

  • Download URL: ndi_ptz-0.1.4.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.19

File hashes

Hashes for ndi_ptz-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ca196f9cf6b9a8ed6b4849b985d25af7fee8f2e2f641477fed7aa94a197da48a
MD5 9dc93e5f1824fc1ba1239a6dfc66a6ae
BLAKE2b-256 aa1c217ef16657d12d926c2760185b50cddf365f41df93181b0af45684c9b465

See more details on using hashes here.

File details

Details for the file ndi_ptz-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: ndi_ptz-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.19

File hashes

Hashes for ndi_ptz-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f0103759b1a4ded953bafab3a159c53e2d5a135c5062bd93fd310cd37ae205d3
MD5 c905648b8cd667deddc139cc0f8805eb
BLAKE2b-256 20a2f4deacbb625a8a9fcb4aba78cf7c33c8333ae5744ba84031b1417445283e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page