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 control
Or pre-defined a source and joystick:
$ 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 was 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 4 and 5 controllers were 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.
Metadata
Release files for ndi-ptz 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ndi_ptz-0.2.0.tar.gz | 18.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ndi_ptz-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.8 kB
Release files / ndi_ptz-0.2.0.tar.gz
| Download URL | ndi_ptz-0.2.0.tar.gz |
|---|---|
| Size | 18.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b05c992657d660832439ad74df6c25acbc2491117f7d07a2d41a674076874c4e
|
|
BLAKE2b-256 checksum How to use checksums |
92b89190b3cfa69301d8f74c573f57cc27a50673a217c4f26301ca60325b00fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / ndi_ptz-0.2.0-py3-none-any.whl
| Download URL | ndi_ptz-0.2.0-py3-none-any.whl |
|---|---|
| Size | 7.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9b7d657a7bc91b2dbfca016494f2d0bd62d2ab652fbfc327c73a4e47928e19aa
|
|
BLAKE2b-256 checksum How to use checksums |
34ce674cca3c2f807cdb67fd0d4cee2f5a0520909ab5d49162317634f9d3aad4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|