What problem does it solve?
Discover and control ONVIF IP cameras via SOAP/XML with WS-Security UsernameToken digest: onvif-util (libonvif github.com/sr99622/libonvif), onvif-cli (github.com/gardere/onvif-cli), python-onvif-zeep (PyPI onvif-zeep), onvif_control (bash + WS-Security), gonvif (Go). WS-Discovery multicast to 239.255.255.250:3702 finds ProbeMatch responses. Services: Device Management, Media (RTSP URIs), PTZ, Imaging, Events, Recording/Search/Replay, Analytics. Profiles: S (deprecated 2027), T (H.264/H.265 + metadata), G (recording), M (analytics), A/C/D (access). Use when the user asks to discover ONVIF cameras, get an RTSP stream URL, move a PTZ via ONVIF (ContinuousMove/AbsoluteMove/GotoPreset), grab a snapshot, authenticate with UsernameToken digest, or query a camera's ONVIF capabilities.
Core Features & Use Cases
- Discover ONVIF devices on the network and query capabilities
- Retrieve device information (Manufacturer, Model, FirmwareVersion, SerialNumber, HardwareId)
- Obtain RTSP stream URIs via GetProfiles/GetStreamUri (Media/Media2)
- Grab snapshots via GetSnapshotUri
- PTZ controls: ContinuousMove, AbsoluteMove, GotoPreset, SetPreset
- WS-Security UsernameToken digest for SOAP authentication
- Use cases: camera inventory, live UI control, automated ingest
Quick Start
Discover cameras on the network and fetch a stream URL and PTZ control using the onvifctl script.