Monitor VIF system and per-stream health and performance.
- Reference
- REST API
- Update default configuration
Wowza Video Intelligence Framework (VIF) REST API
The Video Intelligence Framework (VIF) adds real-time, AI-powered object detection, scene analysis, and event-driven intelligence to live video streams running on Wowza Streaming Engine (WSE).
This REST API lets you inspect system and per-stream status, read and update the default configuration, manage the active (in-memory) and saved (on-disk) configuration of individual streams, and retrieve annotated thumbnails.
Settings cascade through three levels of increasing specificity: Defaults (/v1/{server}/plugin/vif/config) → Stream pattern → Single stream. A more specific setting overrides a less specific one.
Active config (
/v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}) is the configuration currently applied in memory to a running stream. SupportsGETandPUT.Saved config (
/v1/{server}/plugin/vif/applications/{appName}/streams/{streamName}/config) is the persisted configuration invideo-intelligence.json. SupportsGET,PUT,POST, andDELETE.
- Local Wowza Streaming Engine REST APIhttp://localhost:8087/v1/{server}/plugin/vif/config
- Custom Wowza Streaming Engine hosthttp://localhost:8087/v1/{server}/plugin/vif/config
- curl
- Java
- Python
- JavaScript
curl -i -X GET \
-u <username>:<password> \
http://localhost:8087/v1/http://localhost:8087/plugin/vif/configConfiguration retrieved successfully.
Array (or map) of VIF event listeners to trigger.
Array (or map) of VIF event listeners to trigger.
Ignore untracked objects when a tracking_method is set.
Scene/VLM only. When inference stays slower than real-time, skip the stale buffered backlog and resume at the live edge instead of letting latency grow.
Scene/VLM only. How far behind live (seconds) detections may fall before catch-up skips to live. Unset derives to the buffer headroom (~2s).
Opt-in frame-rate throttle (all modes): reduce inference_fps when inference falls behind. Renamed from auto_scene_frame_throttle (still accepted on read).
Height of the video to be inferenced. -1 = source, 0 = model, >0 actual value.
Debug: max log messages to write for vif/ws/wss. -1 all, 0 disabled.
{ "active": false, "vi_service": "string", "vi_service_api_key": "string", "app_name": "string", "stream_name": "string", "vif_event_listeners": [ { … } ], "rollup_batch_interval": 2, "grayscaled": false, "landscape_video": true, "object_analysis": { "model_name": "small", "class_names": [ … ], "confidence_threshold": 1, "tracking_method": "byte_track", "byte_track_properties": { … } }, "scene_analysis": { "class_names": [ … ], "type": "string", "sensitivity": 0, "confidence_threshold": 1 }, "ignore_untracked_objects": false, "frame_buffer": 10, "catch_up_to_live": true, "catch_up_max_behind_seconds": 0, "auto_frame_throttle": false, "use_transcoder": true, "inference_fps": -1, "inference_video_height": -1, "frame_grab_interval": 1, "skip_frames": 0, "save_images": false, "log_timing": 0, "log_max_messages": 0, "streams": [ {} ] }
Request
Updates the global VIF default configuration. Send only the fields you want to change; unspecified fields are left unchanged. Some settings may require a WSE restart to take effect.
Array (or map) of VIF event listeners to trigger.
Array (or map) of VIF event listeners to trigger.
Ignore untracked objects when a tracking_method is set.
Scene/VLM only. When inference stays slower than real-time, skip the stale buffered backlog and resume at the live edge instead of letting latency grow.
Scene/VLM only. How far behind live (seconds) detections may fall before catch-up skips to live. Unset derives to the buffer headroom (~2s).
Opt-in frame-rate throttle (all modes): reduce inference_fps when inference falls behind. Renamed from auto_scene_frame_throttle (still accepted on read).
Height of the video to be inferenced. -1 = source, 0 = model, >0 actual value.
Debug: max log messages to write for vif/ws/wss. -1 all, 0 disabled.
- Local Wowza Streaming Engine REST APIhttp://localhost:8087/v1/{server}/plugin/vif/config
- Custom Wowza Streaming Engine hosthttp://localhost:8087/v1/{server}/plugin/vif/config
- curl
- Java
- Python
- JavaScript
- enable
- objectClasses
curl -i -X PUT \
-u <username>:<password> \
http://localhost:8087/v1/http://localhost:8087/plugin/vif/config \
-H 'Content-Type: application/json' \
-d '{
"active": true
}'Configuration updated successfully.
Array (or map) of VIF event listeners to trigger.
Array (or map) of VIF event listeners to trigger.
Ignore untracked objects when a tracking_method is set.
Scene/VLM only. When inference stays slower than real-time, skip the stale buffered backlog and resume at the live edge instead of letting latency grow.
Scene/VLM only. How far behind live (seconds) detections may fall before catch-up skips to live. Unset derives to the buffer headroom (~2s).
Opt-in frame-rate throttle (all modes): reduce inference_fps when inference falls behind. Renamed from auto_scene_frame_throttle (still accepted on read).
Height of the video to be inferenced. -1 = source, 0 = model, >0 actual value.
Debug: max log messages to write for vif/ws/wss. -1 all, 0 disabled.
{ "active": false, "vi_service": "string", "vi_service_api_key": "string", "app_name": "string", "stream_name": "string", "vif_event_listeners": [ { … } ], "rollup_batch_interval": 2, "grayscaled": false, "landscape_video": true, "object_analysis": { "model_name": "small", "class_names": [ … ], "confidence_threshold": 1, "tracking_method": "byte_track", "byte_track_properties": { … } }, "scene_analysis": { "class_names": [ … ], "type": "string", "sensitivity": 0, "confidence_threshold": 1 }, "ignore_untracked_objects": false, "frame_buffer": 10, "catch_up_to_live": true, "catch_up_max_behind_seconds": 0, "auto_frame_throttle": false, "use_transcoder": true, "inference_fps": -1, "inference_video_height": -1, "frame_grab_interval": 1, "skip_frames": 0, "save_images": false, "log_timing": 0, "log_max_messages": 0, "streams": [ {} ] }