Appearance
About this article
- Audience: VMS integrators and operators wiring standard IP-camera clients to a shadow device
- Goal: After reading, you can discover the device, read or set H.265 encoding, open the live RTSP stream, and subscribe to person-detection events
- Type: Reference
Summary
Each shadow exposes a minimal ONVIF sidecar aligned with ONVIF Profile S (video) and Profile T (metadata/events). Standard tools discover the camera over WS-Discovery, configure H.265 encoding, play RTSP from the existing encoder pipeline, and pull person events sourced from on-device RF-DETR precomp detections.
Prerequisites
- Shadow deployed and healthy — see Quickstart
- LAN access to
<device-ip>(UDP 3702, TCP 8080, RTSP 8554) - Optional: ONVIF Device Manager, VLC, or a VMS that supports Profile S/T (Milestone, Genetec, and similar)
Ports and services
| Port | Protocol | Service |
|---|---|---|
| 3702 | UDP | WS-Discovery — Probe / ProbeMatch |
| 8080 | HTTP | ONVIF SOAP — Device, Media2, Events |
| 8554 | RTSP | Live H.265 preview via go2rtc |
Discovery scopes: Profile/T, video_encoder, NetworkVideoTransmitter
SOAP endpoints (replace <device-ip>):
| Path | Profile | Purpose |
|---|---|---|
/onvif/device_service | Device | Identity and capabilities |
/onvif/media2 | S | Profiles, encoder config, stream URI |
/onvif/events | T | Pull-point subscriptions and messages |
Device service
| Operation | Response |
|---|---|
| GetDeviceInformation | Manufacturer, model, firmware, serial, hardware ID |
| GetCapabilities | XAddr URLs for Device, Media2, Events on <device-ip>:8080 |
Media2 (Profile S)
GetProfiles / GetVideoEncoderConfiguration
Active H265_MAIN profile (defaults when unset):
| Field | Default |
|---|---|
| Resolution | 3840 × 2160 |
| Frame rate | 30 fps |
| Bitrate | 12 000 kbps |
| Keyframe interval | 2 s |
GetVideoEncoderConfigurationOptions
Returns supported H.265 resolution and rate-control bounds (320–3840 wide, 240–2160 tall, 5–30 fps, 1 000–20 000 kbps).
SetVideoEncoderConfiguration
Maps SOAP encoder fields to H265_* settings on the device. A configuration change is signaled to the encoder process; clients may need to reconnect the RTSP session after a set.
Writable fields: Encoding (H265), Width, Height, FrameRateLimit, BitrateLimit.
GetStreamUri
Returns the live preview URI:
text
rtsp://<device-ip>:8554/previewThe stream reuses the existing H.265 encoder and go2rtc relay — no separate encoder is started for ONVIF.
Events (Profile T)
CreatePullPointSubscription / PullMessages
Person detections from RF-DETR class 0 (precomp, confidence ≥ 0.35). PullMessages returns up to three of the eight most recent person detections.
Motion topic (tns1:RuleEngine/CellMotionDetector/Motion):
| Field | Source |
|---|---|
Person | c=0 conf=<score> track=<track_id> |
VideoSource | 0 |
Configuration topic (tns1:Device/Configuration/ConfigurationChanged): emitted after encoder sets and on each pull for client compatibility.
Pull-point termination window: 120 seconds from the current time.
Client quick checks
VLC — live preview
bash
vlc rtsp://<device-ip>:8554/previewONVIF Device Manager
- Run network scan (UDP 3702).
- Open device → Live video → confirm H.265 stream.
- Video encoder → change resolution or bitrate → verify encoder log shows
H265_MAINactive. - Events → PullPoint → confirm person motion messages with
c=0.
Proxy — latest detections (parallel check without ONVIF)
bash
curl -s -X POST "http://PHANTOM_PROXY:8788/tools/call?target=<device-ip>" \
-H "Content-Type: application/json" \
-d '{"tool":"get_latest_dets","arguments":{}}'Expect dets entries with c: 0 (person) at ~10 Hz when RF-DETR is engaged.
Architecture
Limitations (MVP)
- Auth: Minimal digest; most clients tolerate open discovery on the LAN.
- Profiles: Single main profile token (
Profile_1/Enc_1); no full WSDL catalog. - Events: Pull-point only; no WS-Notification push in this MVP.
- Detections: Person class (
c=0) only; weapon and other classes stay on MQTT/MCP surfaces. - Recording: Justified 60 s chunks and cloud escalation are outside ONVIF — see API reference.
Related references
- Model card — RF-DETR — class IDs, confidence gates, precomp authority
- API reference — MCP tools, proxy surfaces, stream snapshot
- Edge AI architecture — encoder, RF-DETR, and sidecar placement
- NIST compliance — RMF hooks for video surveillance
Next steps
- Verify post-deploy ONVIF and RTSP during your soak gate in Quickstart
- Wire VMS event rules on person motion topics
- Read MQTT reference for fleet-wide detection telemetry at ~10 Hz
Operator depth
Live fleet state and harness evidence live in private operator handoff (not published) (private).