WINK OnvifProbe CLI Reference

Command-line tool for discovering cameras, retrieving RTSP URLs, and managing recordings
Version 1.4.1 - February 2026 | WINK Streaming - https://www.wink.co

Download Console Tools

Self-contained executables - no runtime required

Windows x64 (48MB) macOS Intel (48MB) macOS ARM64 (46MB) Linux x64 (48MB)

Commands

Commands Overview

Command Description
discover Find cameras via WS-Discovery multicast
scan Actively scan IP ranges for cameras
probe Get RTSP URLs from a specific camera
guess Guess RTSP URLs using manufacturer patterns
recordings List recordings stored on camera
download Get replay URI and download recordings
test Batch test cameras from JSON file

discover

Find ONVIF cameras on the local network using WS-Discovery (UDP multicast on port 3702).

WINK_OnvifProbe discover [options]

Options

OptionDescriptionDefault
-t, --timeout <seconds>Discovery timeout5
-o, --output <file>Save results to JSON file-
--format <format>Output format: text, jsontext
-q, --quietSuppress output (for scripting)false
-v, --verboseEnable debug loggingfalse

Examples

# Basic discovery
WINK_OnvifProbe discover

# Extended timeout for slow networks
WINK_OnvifProbe discover -t 15

# JSON output for scripting
WINK_OnvifProbe discover --format json

# Save to file
WINK_OnvifProbe discover -o cameras.json

scan

Actively scan IP ranges for ONVIF cameras. Supports CIDR notation.

WINK_OnvifProbe scan -n <network> [options]

Options

OptionDescriptionDefault
-n, --network <cidr>Network range in CIDR notation (required)-
-u, --username <user>ONVIF username-
-p, --password <pass>ONVIF password-
--port <port>Specific port to scanauto
--parallel <n>Parallel scan threads10
-o, --output <file>Save results to JSON-

CIDR Examples

CIDRRangeCount
192.168.1.0/24192.168.1.0 - 192.168.1.255256
192.168.1.0/28192.168.1.0 - 192.168.1.1516
10.0.0.0/1610.0.0.0 - 10.0.255.25565,536

Examples

# Scan local subnet
WINK_OnvifProbe scan -n 192.168.1.0/24

# Multiple subnets
WINK_OnvifProbe scan -n 192.168.1.0/24,192.168.8.0/24

# With credentials
WINK_OnvifProbe scan -n 192.168.1.0/24 -u admin -p password

# Fast scan with more threads
WINK_OnvifProbe scan -n 10.0.0.0/16 --parallel 50

probe

Get RTSP URLs and stream details from a specific camera using ONVIF.

WINK_OnvifProbe probe -h <host> -u <username> -p <password> [options]

Options

OptionDescriptionDefault
-h, --host <host>Camera hostname or IP (required)-
-u, --username <user>ONVIF username (required)-
-p, --password <pass>ONVIF password (required)-
--port <port>Specific ONVIF portauto
--format <format>Output format: text, jsontext

Examples

# Basic probe
WINK_OnvifProbe probe -h 192.168.1.100 -u admin -p password

# JSON output
WINK_OnvifProbe probe -h 192.168.1.100 -u admin -p password --format json

# Save to file
WINK_OnvifProbe probe -h 192.168.1.100 -u admin -p password -o camera.json

guess

Guess RTSP stream URLs using manufacturer-specific patterns. Useful when ONVIF is not available or credentials differ for RTSP.

WINK_OnvifProbe guess -h <host> [options]

Options

OptionDescriptionDefault
-h, --host <host>Camera hostname or IP (required)-
-u, --username <user>RTSP username-
-p, --password <pass>RTSP password-
--rtsp-port <port>RTSP port554
-m, --manufacturer <name>Camera manufacturerAuto
--allTry all manufacturer patternsfalse
--stop-firstStop after first working URLfalse
--ffprobeUse ffprobe for testingfalse

Supported Manufacturers

ManufacturerExample Models
HikvisionDS-2CD series
DahuaIPC-HFW series
AmcrestIP2M, IP4M, IP8M series
AxisM, P, Q series
ReolinkRLC series
UniviewIPC series
BoschFLEXIDOME, DINION
HanwhaWisenet, Samsung
VivotekFD, IB series
FoscamFI series
PanasonicWV series
SonySNC series
+ 5 moreGeovision, ACTi, Mobotix, Pelco, Generic

Examples

# Auto-detect manufacturer
WINK_OnvifProbe guess -h 192.168.1.100 -u admin -p password

# Specify manufacturer
WINK_OnvifProbe guess -h 192.168.1.100 -u admin -p password -m Hikvision

# Try all manufacturers
WINK_OnvifProbe guess -h 192.168.1.100 -u admin -p password --all

# Stop after first working URL
WINK_OnvifProbe guess -h 192.168.1.100 -u admin -p password --stop-first

recordings

List recordings stored on an ONVIF camera (Profile G).

WINK_OnvifProbe recordings -h <host> -u <username> -p <password> [options]

Examples

# List recordings
WINK_OnvifProbe recordings -h 192.168.1.100 -u admin -p password

# JSON output
WINK_OnvifProbe recordings -h 192.168.1.100 -u admin -p password --format json

download

Get replay URI for a recording and optionally download it using ffmpeg.

WINK_OnvifProbe download -h <host> -u <user> -p <pass> -t <token> [options]

Options

OptionDescriptionDefault
-t, --token <token>Recording token (from recordings command)-
-o, --output <file>Output video file path-
-d, --duration <seconds>Recording duration to download60

Examples

# Get replay URL only
WINK_OnvifProbe download -h 192.168.1.100 -u admin -p password -t recording_001

# Download 60 seconds to file
WINK_OnvifProbe download -h 192.168.1.100 -u admin -p password -t recording_001 -o clip.mp4

# Download 5 minutes
WINK_OnvifProbe download -h 192.168.1.100 -u admin -p password -t recording_001 -o clip.mp4 -d 300

test

Batch test multiple cameras from a JSON file.

WINK_OnvifProbe test -i <input.json> [-o <output.json>]

Input File Format

{
  "cameras": [
    {
      "host": "192.168.1.100",
      "username": "admin",
      "password": "password",
      "port": 80
    },
    {
      "host": "192.168.1.101",
      "username": "admin",
      "password": "password"
    }
  ]
}

Exit Codes

CodeMeaning
0Success
1General error (connection failed, auth failed, etc.)
2Invalid arguments
3No cameras found
4Partial success (some cameras failed)

Common ONVIF Ports

The tool automatically tries these ports when --port is not specified:

PortProtocolCommon Use
80HTTPDefault ONVIF
443HTTPSSecure ONVIF
8080HTTPAlternative
8000HTTPHikvision default
554RTSPSometimes used

Scripting Examples

Bash: Discover and probe all cameras

#!/bin/bash
# Discover cameras and probe each one

WINK_OnvifProbe discover --format json -o /tmp/cameras.json

jq -r '.cameras[].host' /tmp/cameras.json | while read host; do
    echo "Probing $host..."
    WINK_OnvifProbe probe -h "$host" -u admin -p password --format json
done

Bash: Check if camera is online

#!/bin/bash
if WINK_OnvifProbe probe -h 192.168.1.100 -u admin -p password -q; then
    echo "Camera is online"
else
    echo "Camera is offline"
fi

Python: Parse JSON output

import subprocess
import json

result = subprocess.run(
    ['WINK_OnvifProbe', 'probe', '-h', '192.168.1.100',
     '-u', 'admin', '-p', 'password', '--format', 'json'],
    capture_output=True, text=True
)

data = json.loads(result.stdout)
for profile in data['profiles']:
    print(f"Stream: {profile['rtspUrl']}")

PowerShell: Scan and export

# Scan network and export to CSV
$result = WINK_OnvifProbe scan -n 192.168.1.0/24 --format json | ConvertFrom-Json
$result.cameras | Export-Csv -Path cameras.csv -NoTypeInformation

Environment Variables

VariableDescription
WINK_ONVIF_TIMEOUTDefault timeout in seconds
WINK_ONVIF_USERNAMEDefault username
WINK_ONVIF_PASSWORDDefault password
NO_COLORDisable colored output

Troubleshooting

Discovery finds no cameras

Authentication fails

RTSP URLs don't work

WINK Camera Studio - Professional camera management with GUI

Download the full application for visual camera management, PTZ control, and live video preview.

WINK OnvifProbe is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0). ONVIF is a registered trademark of ONVIF, Inc.