- Install Node.js 18.x or higher (Windows | Linux | OSx).
npm i -g onvif-ptz-cli
- Run
onvif-ptz --help
to show the documentation.
Note: the Docker image is a multiarch image. So it will also work on Raspberry Pi's.
sudo docker run \
--name onvif-ptz \
--rm \
marklagendijk/onvif-ptz-cli goto-preset \
--baseUrl=http://192.168.0.123 \
-u=admin \
-p=admin \
--preset=1
All args can also be specified as environment variables, with the ONVIF_
prefix. This is mostly useful for specifying the url and credentials, so you don't have to enter them for each command.
ONVIF_BASE_URL=http://192.168.0.123
ONVIF_USERNAME=admin
ONVIF_PASSWORD=admin
Usage: onvif-ptz <command>
Commands:
goto-preset Move the camera to a preset.
goto-home Move the camera to the home position.
move Move relatively to the current camera position.
get-presets List all camera presets. Note: for some cameras the ONVIF presets are separate from the normal presets. If that is the case, you may have to re-create your presets using the set-preset command.
set-preset Store the current location/settings in a preset.
Options:
--help Show help [boolean]
--version Show version number [boolean]
--baseUrl The baseUrl of the camera. [string] [required]
--path The onvif path of the camera. [string] [default: "/onvif/device_service"]
--username, -u The username of the camera. [string] [required]
--password, -p The password of the camera. [string] [required]
Examples:
onvif-ptz goto-preset --baseUrl=http://192.168.0.123 -u=admin -p=admin --preset=1 Load preset "1".
onvif-ptz goto-preset --baseUrl=http://192.168.0.123:8080 -u=admin -p=admin --preset=1 Load preset "1" on a camera that uses port 8080 as onvif port.
onvif-ptz goto-home --baseUrl=http://192.168.0.123 -u=admin -p=admin Move the camera to the home position.
onvif-ptz move --baseUrl=http://192.168.0.123:8080 -u=admin -p=admin -x=0.01 Move the camera 0.01 to the right.
onvif-ptz move --baseUrl=http://192.168.0.123:8080 -u=admin -p=admin -x=0.01:0.5 Move the camera 0.01 to the right with half speed.
onvif-ptz move --baseUrl=http://192.168.0.123:8080 -u=admin -p=admin -x=0.01 -y=0.02 -z=0.03 Move the camera 0.01 to the right, 0.02 to the top and zoom in 0.03.
onvif-ptz get-presets --baseUrl=http://192.168.0.123 -u=admin -p=admin List all camera presets.
onvif-ptz set-preset --baseUrl=http://192.168.0.123 -u=admin -p=admin --preset=1 --name=Overview Create a preset with preset token 1 and name Overview.
onvif-ptz goto-preset
Move the camera to a preset.
Options:
--help Show help [boolean]
--version Show version number [boolean]
--baseUrl The baseUrl of the camera. [string] [required]
--path The onvif path of the camera. [string] [default: "/onvif/device_service"]
--username, -u The username of the camera. [string] [required]
--password, -p The password of the camera. [string] [required]
--preset The preset which should be loaded. [string] [required]
onvif-ptz goto-home
Move the camera to the home position.
Options:
--help Show help [boolean]
--version Show version number [boolean]
--baseUrl The baseUrl of the camera. [string] [required]
--path The onvif path of the camera. [string] [default: "/onvif/device_service"]
--username, -u The username of the camera. [string] [required]
--password, -p The password of the camera. [string] [required]
onvif-ptz move
Move relatively to the current camera position.
Options:
--help Show help [boolean]
--version Show version number [boolean]
--baseUrl The baseUrl of the camera. [string] [required]
--path The onvif path of the camera. [string] [default: "/onvif/device_service"]
--username, -u The username of the camera. [string] [required]
--password, -p The password of the camera. [string] [required]
-x Movement on the x-axis. Left: between -1 and 0. Right: between 0 and 1. Optionally add ':NUMBER' for speed (between 0 and 1). [string] [default: "0"]
-y Movement on the y-axis. Down: between -1 and 0. Up: between 0 and 1. Optionally add ':NUMBER' for speed (between 0 and 1). [string] [default: "0"]
-z Movement on the z-axis (zoom). Zoom out: between -1 and 0. Zoom in: between 0 and 1. Optionally add ':NUMBER' for speed (between 0 and 1). [string] [default: "0"]
onvif-ptz get-presets
List all camera presets. Note: for some cameras the ONVIF presets are separate from the normal presets. If that is the case, you may have to re-create your presets using the set-preset command.
Options:
--help Show help [boolean]
--version Show version number [boolean]
--baseUrl The baseUrl of the camera. [string] [required]
--path The onvif path of the camera. [string] [default: "/onvif/device_service"]
--username, -u The username of the camera. [string] [required]
--password, -p The password of the camera. [string] [required]
onvif-ptz set-preset
Store the current location/settings in a preset.
Options:
--help Show help [boolean]
--version Show version number [boolean]
--baseUrl The baseUrl of the camera. [string] [required]
--path The onvif path of the camera. [string] [default: "/onvif/device_service"]
--username, -u The username of the camera. [string] [required]
--password, -p The password of the camera. [string] [required]
--preset The token of the preset. Usually just a number. [string] [required]
--name The name of the preset. [string] [required]