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.
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
- Windows: http://ndi.link/NDIRedistV6
- MacOS: http://ndi.link/NDIRedistV6Apple
- Linux: https://downloads.ndi.tv/SDK/NDI_SDK_Linux/Install_NDI_SDK_v6_Linux.tar.gz
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
- Xbox Series X Controller
- Xbox 360 Controller
- PlayStation 4 Controller
- PlayStation 5 Controller
Nintendo Controller
Only the Nintendo Switch Pro Controller is supported and tested.
- You must hold
LandRconstantly 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
Abutton to trigger the autofocus.
Xbox Controller
Only the Xbox Series X Controller was tested. On Mac, it only works when connected via Bluetooth.
- You must hold
LandRconstantly 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
Bbutton to trigger the autofocus.
PlayStation Controller
PlayStation controllers are not tested.
- You must hold
LandRconstantly 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
Obutton 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.5" .
git tag '0.1.5'
rm -rf dist
uv build
uv publish
git push --tags
git push
Legal
This code is provided under the terms and permissions granted by the MIT license.
NDI® is a registered trademark of Vizrt NDI AB.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ndi_ptz-0.1.5.tar.gz.
File metadata
- Download URL: ndi_ptz-0.1.5.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c06e21b133392fbfe07e380b3cdad941a144d6dc95634957700885822e3928ba
|
|
| MD5 |
e26f363f1e73f6bd0c808b86bc8b7765
|
|
| BLAKE2b-256 |
be93a129ba7b9965fd413255216bf928761cc9789c39e3569c9698fa404058b1
|
File details
Details for the file ndi_ptz-0.1.5-py3-none-any.whl.
File metadata
- Download URL: ndi_ptz-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cec0ac722bc54052c648e67a5dd5b54c81deda7bdc51002981d89767c0cdc619
|
|
| MD5 |
3b3355e47a5539036a151efecc3f1c60
|
|
| BLAKE2b-256 |
3f2938f9920cd5a7087133854ca6cc6269789208827874d6deedcb60e42d7d1b
|