link-onvif-client
link-onvif-client is a Java toolkit for ONVIF protocol device discovery and management:
- onvif-client-core — Core library. Implements WS-Discovery, SOAP/XML messaging, WS-Security authentication, and all major ONVIF services (Device, Media, PTZ, Imaging, Events, Recording). Packaged as a single JAR with no runtime dependencies beyond SLF4J.
- onvif-dashboard — Web application. Spring Boot backend + SPA frontend, providing a simple dashboard page for device discovery, configuration, PTZ control, and live preview.
- onvif-cli — Command-line interface. Built on picocli, enables direct ONVIF operations from the terminal with support for both interactive and scripted usage.
For questions or issues, feel free to open an issue or submit a pull request.
Features
- Device discovery — WS-Discovery multicast probe for ONVIF devices on the LAN
- Device management — Query and configure device info, hostname, network, users, date/time, NTP, DNS, and system maintenance (reboot, factory reset)
- Media streaming — Enumerate profiles, video/audio sources and encoder configurations; retrieve RTSP stream URIs and snapshot URIs
- PTZ control — Continuous, absolute, and relative moves; preset management; home position
- Imaging — Read and adjust brightness, contrast, sharpness, focus; move/stop focus
- Event subscription — Pull-point and push-mode event monitoring
- Recording — Query recording service capabilities and recording list
- Dashboard visual UI — Real-time device discovery, PTZ panel, stream preview, and event display
- CLI — Discover, interrogate, and control devices from the command line, suitable for automation and headless environments
onvif-client-core
A self-contained ONVIF library — single JAR with only SLF4J as a runtime dependency, feature-complete for device interaction. Add it to your project and start working with ONVIF devices immediately.
Build & Install Locally
git clone https://github.com/openlink2/link-onvif-client.git
cd link-onvif-client
mvn clean install -pl onvif-client-core -DskipTests
Then add the dependency to your pom.xml:
com.openlink2.onvif
onvif-client-core
1.0.1
Quick Example
// Connect and query device info
try (var client = new OnvifClient("http://192.168.1.100/onvif/device_