Video Object Detection API Methods
In this section:
Create Job
POST /job/:id
This method creates a video processing task (job) for the video-worker
component.
Parameters in path segments
:id
: job id.
Parameters in request body:
enabled
: job enabled state.stream_url
: URL/address of a video stream/file to process.labels
: key-value labels, that will be used by the router component (for examplefacerouter
) to find processing directives for objects detected in this video stream.single_pass
: if true, disable restarting video processing upon error (by default, false).router_url
: URL/address of the router component (for example,facerouter
) to receive detected objects from thevideo-worker
component for processing.router_events_url
: URL/address of the router component (for example,facerouter
), that uses events extraction.stream_settings
: stream processing common settings and detector parameters.stream_settings_gpu
: deprecated video stream settings. Not recommended for use. Only for compatibility.
Note
Other video stream parameters that differ from common video stream parameters are specified in the video-manager
configuration file (see Video Object Detection: video-manager and video-worker section) or in the service defaults.
Returns:
A job
object: all parameters from the request, as well as some read-only attributes.
Example
Request
curl -s 'http://localhost:18810/job/myid-123' --data '{"stream_url":"http://1.2.3.4/stream.mp4", "labels": {"district": "SVAO"}}' | jq
Response
{
"id": "myid-123",
"enabled": true,
"stream_url": "http://1.2.3.4/stream.mp4",
"labels": {
"district": "SVAO"
},
"router_url": "http://127.0.0.1:7777/mocks/events/records",
"router_events_url": "http://127.0.0.1:7777/mocks/actions/records",
"single_pass": false,
"stream_settings": {
"play_speed": -1,
"disable_drops": false,
"imotion_threshold": 0,
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"ffmpeg_params": [],
"ffmpeg_format": "",
"use_stream_timestamp": false,
"start_stream_timestamp": 0,
"rot": "",
"stream_data_filter": "",
"video_transform": "",
"enable_recorder": false,
"enable_liveness": false,
"record_audio": false,
"detectors": {
"face": {
"filter_min_quality": 0.45,
"filter_min_size": 1,
"filter_max_size": 8192,
"roi": "",
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"track_interpolate_bboxes": true,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_max_duration_frames": 0,
"track_send_history": false,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true,
"track_object_is_principal": false,
"track_history_active_track_miss_interval": 0,
"filter_track_min_duration_frames": 1,
"extractors_track_triggers": {}
}
}
},
"stream_settings_gpu": {
"play_speed": -1,
"filter_min_quality": 0.45,
"filter_min_face_size": 1,
"filter_max_face_size": 8192,
"normalized_only": false,
"jpeg_quality": 95,
"overall_only": false,
"use_stream_timestamp": false,
"ffmpeg_params": [],
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"start_stream_timestamp": 0,
"imotion_threshold": 0,
"rot": "",
"roi": "",
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"ffmpeg_format": "",
"disable_drops": false,
"router_full_frame_png": false,
"router_disable_normalized": false,
"crop_fullframe_rot": false,
"realtime_post_first_immediately": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"track_max_duration_frames": 0,
"send_track_history": false,
"stream_data_filter": "",
"video_transform": ""
},
"status": "AWAITING",
"status_msg": "",
"statistic": {
"processed_duration": 0,
"faces_posted": 0,
"faces_failed": 0,
"faces_not_posted": 0,
"processing_fps": 0,
"frames_dropped": 0,
"frames_processed": 0,
"frames_imotion_skipped": 0,
"decoding_soft_errors": 0,
"frame_width": 0,
"frame_height": 0,
"last_stream_timestamp": 0,
"objects": null,
"extractors": null,
"job_starts": 0
},
"restream_url": "",
"restream_direct_url": "",
"shots_url": "",
"worker_id": "",
"version": ""
}
List Existing Jobs
GET /jobs
This method returns the list of all existing jobs.
Parameters:
This method doesn’t accept any parameters.
Returns:
JSON representation with the list of all jobs.
Example
Request
curl -s 'http://localhost:18810/jobs' | jq
Response
[
{
"id": "myid-123",
"enabled": true,
"stream_url": "http://1.2.3.4/stream.mp4",
"labels": {
"district": "SVAO"
},
"router_url": "http://127.0.0.1:7777/mocks/events/records",
"router_events_url": "http://127.0.0.1:7777/mocks/actions/records",
"single_pass": false,
"stream_settings": {
"play_speed": -1,
"disable_drops": false,
"imotion_threshold": 0,
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"ffmpeg_params": [],
"ffmpeg_format": "",
"use_stream_timestamp": false,
"start_stream_timestamp": 0,
"rot": "",
"stream_data_filter": "",
"video_transform": "",
"enable_recorder": false,
"enable_liveness": false,
"record_audio": false,
"detectors": {
"face": {
"filter_min_quality": 0.45,
"filter_min_size": 1,
"filter_max_size": 8192,
"roi": "",
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"track_interpolate_bboxes": true,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_max_duration_frames": 0,
"track_send_history": false,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true,
"track_object_is_principal": false,
"track_history_active_track_miss_interval": 0,
"filter_track_min_duration_frames": 1,
"extractors_track_triggers": {}
}
}
},
"stream_settings_gpu": {
"play_speed": -1,
"filter_min_quality": 0.45,
"filter_min_face_size": 1,
"filter_max_face_size": 8192,
"normalized_only": false,
"jpeg_quality": 95,
"overall_only": false,
"use_stream_timestamp": false,
"ffmpeg_params": [],
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"start_stream_timestamp": 0,
"imotion_threshold": 0,
"rot": "",
"roi": "",
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"ffmpeg_format": "",
"disable_drops": false,
"router_full_frame_png": false,
"router_disable_normalized": false,
"crop_fullframe_rot": false,
"realtime_post_first_immediately": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"track_max_duration_frames": 0,
"send_track_history": false,
"stream_data_filter": "",
"video_transform": ""
},
"status": "STARTING",
"status_msg": "",
"statistic": {
"processed_duration": 0,
"faces_posted": 0,
"faces_failed": 0,
"faces_not_posted": 0,
"processing_fps": 0,
"frames_dropped": 0,
"frames_processed": 0,
"frames_imotion_skipped": 0,
"decoding_soft_errors": 0,
"frame_width": 0,
"frame_height": 0,
"last_stream_timestamp": 0,
"objects": {},
"extractors": {},
"job_starts": 0
},
"restream_url": "ws://127.0.0.1:9999/stream/myid-123",
"restream_direct_url": "ws://127.0.0.1:9999/directstream/myid-123",
"shots_url": "http://127.0.0.1:9999/shot/myid-123",
"worker_id": "ntechlab_cpu_bed698ede98011e0311d7669f7ff0b18",
"version": "cpa3slouvrb8u0vir3j0"
}
]
Existing Jobs Count
GET /jobs-count
This method returns a set of counters for all jobs statuses. Counters with no jobs will not be shown.
Parameters:
This method doesn’t accept any parameters.
Returns:
JSON representation with information about the count of jobs.
Example
Request
curl -s 'http://localhost:18810/jobs-count' | jq
Response
{
"ALL": 10,
"AWAITING": 1,
"COMPLETED": 1,
"DISABLED": 1,
"DISCONNECTED": 1,
"INPROGRESS": 1,
"INTERRUPTED": 1,
"MISCONFIGURED": 1,
"NOT_STARTED": 1,
"STARTING": 1,
"TOO_MANY_CAMERAS": 1
}
Retrieve Job Parameters
GET /job/:id
This method retrieves a job parameters by id.
Parameters in path segments:
id
: job id.
Returns:
JSON representation of the job object.
Example
Request
curl -s 'http://localhost:18810/job/myid-123' | jq
Response
{
"id": "myid-123",
"enabled": true,
"stream_url": "http://1.2.3.4/stream.mp4",
"labels": {
"district": "SVAO"
},
"router_url": "http://127.0.0.1:7777/mocks/events/records",
"router_events_url": "http://127.0.0.1:7777/mocks/actions/records",
"single_pass": false,
"stream_settings": {
"play_speed": -1,
"disable_drops": false,
"imotion_threshold": 0,
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"ffmpeg_params": [],
"ffmpeg_format": "",
"use_stream_timestamp": false,
"start_stream_timestamp": 0,
"rot": "",
"stream_data_filter": "",
"video_transform": "",
"enable_recorder": false,
"enable_liveness": false,
"record_audio": false,
"detectors": {
"face": {
"filter_min_quality": 0.45,
"filter_min_size": 1,
"filter_max_size": 8192,
"roi": "",
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"track_interpolate_bboxes": true,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_max_duration_frames": 0,
"track_send_history": false,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true,
"track_object_is_principal": false,
"track_history_active_track_miss_interval": 0,
"filter_track_min_duration_frames": 1,
"extractors_track_triggers": {}
}
}
},
"stream_settings_gpu": {
"play_speed": -1,
"filter_min_quality": 0.45,
"filter_min_face_size": 1,
"filter_max_face_size": 8192,
"normalized_only": false,
"jpeg_quality": 95,
"overall_only": false,
"use_stream_timestamp": false,
"ffmpeg_params": [],
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"start_stream_timestamp": 0,
"imotion_threshold": 0,
"rot": "",
"roi": "",
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"ffmpeg_format": "",
"disable_drops": false,
"router_full_frame_png": false,
"router_disable_normalized": false,
"crop_fullframe_rot": false,
"realtime_post_first_immediately": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"track_max_duration_frames": 0,
"send_track_history": false,
"stream_data_filter": "",
"video_transform": ""
},
"status": "STARTING",
"status_msg": "",
"statistic": {
"processed_duration": 0,
"faces_posted": 0,
"faces_failed": 0,
"faces_not_posted": 0,
"processing_fps": 0,
"frames_dropped": 0,
"frames_processed": 0,
"frames_imotion_skipped": 0,
"decoding_soft_errors": 0,
"frame_width": 0,
"frame_height": 0,
"last_stream_timestamp": 0,
"objects": {},
"extractors": {},
"job_starts": 0
},
"restream_url": "ws://127.0.0.1:9999/stream/myid-123",
"restream_direct_url": "ws://127.0.0.1:9999/directstream/myid-123",
"shots_url": "http://127.0.0.1:9999/shot/myid-123",
"worker_id": "ntechlab_cpu_bed698ede98011e0311d7669f7ff0b18",
"version": "cpa3slouvrb8u0vir3j0"
}
Delete Job
DELETE /job/:id
This method deletes a job by id.
Parameters in path segments:
id
: job id.
Returns:
JSON representation of the deleted job object.
Example
Request
curl -s 'http://localhost:18810/job/myid-123' -X DELETE | jq
Response
{
"id": "myid-123",
"enabled": true,
"stream_url": "http://1.2.3.4/stream.mp4",
"labels": {
"district": "SVAO"
},
"router_url": "http://127.0.0.1:7777/mocks/events/records",
"router_events_url": "http://127.0.0.1:7777/mocks/actions/records",
"single_pass": false,
"stream_settings": {
"play_speed": -1,
"disable_drops": false,
"imotion_threshold": 0,
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"ffmpeg_params": [],
"ffmpeg_format": "",
"use_stream_timestamp": false,
"start_stream_timestamp": 0,
"rot": "",
"stream_data_filter": "",
"video_transform": "",
"enable_recorder": false,
"enable_liveness": false,
"record_audio": false,
"detectors": {
"face": {
"filter_min_quality": 0.45,
"filter_min_size": 1,
"filter_max_size": 8192,
"roi": "",
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"track_interpolate_bboxes": true,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_max_duration_frames": 0,
"track_send_history": false,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true,
"track_object_is_principal": false,
"track_history_active_track_miss_interval": 0,
"filter_track_min_duration_frames": 1,
"extractors_track_triggers": {}
}
}
},
"stream_settings_gpu": {
"play_speed": -1,
"filter_min_quality": 0.45,
"filter_min_face_size": 1,
"filter_max_face_size": 8192,
"normalized_only": false,
"jpeg_quality": 95,
"overall_only": false,
"use_stream_timestamp": false,
"ffmpeg_params": [],
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"start_stream_timestamp": 0,
"imotion_threshold": 0,
"rot": "",
"roi": "",
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"ffmpeg_format": "",
"disable_drops": false,
"router_full_frame_png": false,
"router_disable_normalized": false,
"crop_fullframe_rot": false,
"realtime_post_first_immediately": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"track_max_duration_frames": 0,
"send_track_history": false,
"stream_data_filter": "",
"video_transform": ""
},
"status": "DELETED",
"status_msg": "",
"statistic": {
"processed_duration": 0,
"faces_posted": 0,
"faces_failed": 0,
"faces_not_posted": 0,
"processing_fps": 0,
"frames_dropped": 0,
"frames_processed": 0,
"frames_imotion_skipped": 0,
"decoding_soft_errors": 0,
"frame_width": 0,
"frame_height": 0,
"last_stream_timestamp": 0,
"objects": null,
"extractors": null,
"job_starts": 0
},
"restream_url": "ws://127.0.0.1:9999/stream/myid-123",
"restream_direct_url": "ws://127.0.0.1:9999/directstream/myid-123",
"shots_url": "http://127.0.0.1:9999/shot/myid-123",
"worker_id": "ntechlab_cpu_bed698ede98011e0311d7669f7ff0b18",
"version": "cpa3slouvrb8u0vir3j0"
}
Update Job
PATCH /job/:id
The method updates job parameters by id.
Parameters in path segments:
id
: job id.
Parameters in request body:
enabled
: job enabled state.stream_url
: URL/address of a video stream/file to process.labels
: key-value labels, that will be used by the router component (for example,facerouter
) to find processing directives for objects detected in this video stream.single_pass
: if true, disable restarting video processing upon error (by default, false).router_url
: URL/address of the router component (for example,facerouter
) to receive detected objects from thevideo-worker
component for processing.router_events_url
: URL/address of the router component (for example,facerouter
), that uses events extraction.stream_settings
: stream processing common settings and detector parameters.stream_settings_gpu
: deprecated video stream settings. Not recommended for use. Only for compatibility.
Returns:
JSON representation of the updated job object.
Non-editable fields in response:
id
: job id.status
: job status.status_msg
: additional job status info.statistic
: job progress statistics (progress duration, number of posted and not posted objects, processing fps, the number of processed and dropped frames, job start time, etc.).restream_url
: websocket URL where processing stream with detected objects streams live time.restream_direct_url
: websocket URL where original stream with input quality streams live time.shots_url
: HTTP URL where actual stream screenshot can be downloaded.worker_id
: unique id of thevideo worker
instance with a processing job.version
: job version.
Simple example
Request
curl -s 'http://localhost:18810/job/myid-123' -X PATCH --data '{"router_url":"http://myrouter"}' | jq
{
"id": "myid-123",
"enabled": true,
"stream_url": "http://1.2.3.4/stream.mp4",
"labels": {
"district": "SVAO"
},
"router_url": "http://myrouter",
"router_events_url": "http://127.0.0.1:7777/mocks/actions/records",
"single_pass": false,
"stream_settings": {
"play_speed": -1,
"disable_drops": false,
"imotion_threshold": 0,
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"ffmpeg_params": [],
"ffmpeg_format": "",
"use_stream_timestamp": false,
"start_stream_timestamp": 0,
"rot": "",
"stream_data_filter": "",
"video_transform": "",
"enable_recorder": false,
"enable_liveness": false,
"record_audio": false,
"detectors": {
"face": {
"filter_min_quality": 0.45,
"filter_min_size": 1,
"filter_max_size": 8192,
"roi": "",
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"track_interpolate_bboxes": true,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_max_duration_frames": 0,
"track_send_history": false,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true,
"track_object_is_principal": false,
"track_history_active_track_miss_interval": 0,
"filter_track_min_duration_frames": 1,
"extractors_track_triggers": {}
}
}
},
"stream_settings_gpu": {
"play_speed": -1,
"filter_min_quality": 0.45,
"filter_min_face_size": 1,
"filter_max_face_size": 8192,
"normalized_only": false,
"jpeg_quality": 95,
"overall_only": false,
"use_stream_timestamp": false,
"ffmpeg_params": [],
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"start_stream_timestamp": 0,
"imotion_threshold": 0,
"rot": "",
"roi": "",
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"ffmpeg_format": "",
"disable_drops": false,
"router_full_frame_png": false,
"router_disable_normalized": false,
"crop_fullframe_rot": false,
"realtime_post_first_immediately": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"track_max_duration_frames": 0,
"send_track_history": false,
"stream_data_filter": "",
"video_transform": ""
},
"status": "STARTING",
"status_msg": "",
"statistic": {
"processed_duration": 0,
"faces_posted": 0,
"faces_failed": 0,
"faces_not_posted": 0,
"processing_fps": 0,
"frames_dropped": 0,
"frames_processed": 0,
"frames_imotion_skipped": 0,
"decoding_soft_errors": 0,
"frame_width": 0,
"frame_height": 0,
"last_stream_timestamp": 0,
"objects": null,
"extractors": null,
"job_starts": 0
},
"restream_url": "ws://127.0.0.1:9999/stream/myid-123",
"restream_direct_url": "ws://127.0.0.1:9999/directstream/myid-123",
"shots_url": "http://127.0.0.1:9999/shot/myid-123",
"worker_id": "ntechlab_cpu_bed698ede98011e0311d7669f7ff0b18",
"version": "cpa5ob0uvrb8u0vir3mg"
}
Disable detector example
Request
$ curl -s 'http://localhost:18810/job/myid-123' -X PATCH --data '{"stream_settings":{"detectors":{"face":null}}}' | jq
{
"id": "myid-123",
"enabled": true,
"stream_url": "http://1.2.3.4/stream.mp4",
"labels": {
"district": "SVAO"
},
"router_url": "http://myrouter",
"router_events_url": "http://127.0.0.1:7777/mocks/actions/records",
"single_pass": false,
"stream_settings": {
"play_speed": -1,
"disable_drops": false,
"imotion_threshold": 0,
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"ffmpeg_params": [],
"ffmpeg_format": "",
"use_stream_timestamp": false,
"start_stream_timestamp": 0,
"rot": "",
"stream_data_filter": "",
"video_transform": "",
"enable_recorder": false,
"enable_liveness": false,
"record_audio": false,
"detectors": {}
},
"stream_settings_gpu": {
"play_speed": -1,
"filter_min_quality": 0.45,
"filter_min_face_size": 1,
"filter_max_face_size": 8192,
"normalized_only": false,
"jpeg_quality": 95,
"overall_only": false,
"use_stream_timestamp": false,
"ffmpeg_params": [],
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"router_headers": [],
"router_body": [],
"start_stream_timestamp": 0,
"imotion_threshold": 0,
"rot": "",
"roi": "",
"realtime_post_interval": 1,
"realtime_post_every_interval": false,
"ffmpeg_format": "",
"disable_drops": false,
"router_full_frame_png": false,
"router_disable_normalized": false,
"crop_fullframe_rot": false,
"realtime_post_first_immediately": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"track_max_duration_frames": 0,
"send_track_history": false,
"stream_data_filter": "",
"video_transform": ""
},
"status": "STARTING",
"status_msg": "",
"statistic": {
"processed_duration": 0,
"faces_posted": 0,
"faces_failed": 0,
"faces_not_posted": 0,
"processing_fps": 0,
"frames_dropped": 0,
"frames_processed": 0,
"frames_imotion_skipped": 0,
"decoding_soft_errors": 0,
"frame_width": 0,
"frame_height": 0,
"last_stream_timestamp": 0,
"objects": {},
"extractors": {},
"job_starts": 0
},
"restream_url": "ws://127.0.0.1:9999/stream/myid-123",
"restream_direct_url": "ws://127.0.0.1:9999/directstream/myid-123",
"shots_url": "http://127.0.0.1:9999/shot/myid-123",
"worker_id": "ntechlab_cpu_bed698ede98011e0311d7669f7ff0b18",
"version": "cpa5ob0uvrb8u0vir3mg"
}
Restart Job
RESTART /job/:id
POST /job/:id/restart
This method restarts a job by ID.
Parameters in path segments:
id
: job id.
Returns:
HTTP/1.1 200 OK
on success.
Example
Request
curl -s -D - -X RESTART http://localhost:18810/job/1
Response
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: VM:n267l1VQ
Date: Mon, 27 May 2024 08:12:19 GMT
Content-Length: 0
Get Actual Stream Settings as JSON-schema
GET /schemas/stream_settings
This method gets actual stream settings parameters as JSON schema.
Parameters:
This method doesn’t accept any parameters.
Returns:
JSON representation, free form of JSON schema.
Example
Request
curl -s 'http://localhost:18810/schemas/stream_settings' | jq
Response
{
"$schema": "http://json-schema.org/draft/2020-12/schema",
"$id": "https://git.int.ntl/FF.Server/universe/videomanager-api/src/stream_settings/stream-settings",
"$ref": "#/$defs/StreamSettings",
"$defs": {
"Detector": {
"properties": {
"filter_min_quality": {
"type": "number"
},
"filter_min_size": {
"type": "integer"
},
"filter_max_size": {
"type": "integer"
},
"roi": {
"type": "string"
},
"fullframe_crop_rot": {
"type": "boolean"
},
"fullframe_use_png": {
"type": "boolean"
},
"jpeg_quality": {
"type": "integer"
},
"overall_only": {
"type": "boolean"
},
"realtime_post_first_immediately": {
"type": "boolean"
},
"realtime_post_interval": {
"type": "number"
},
"realtime_post_every_interval": {
"type": "boolean"
},
"track_interpolate_bboxes": {
"type": "boolean"
},
"track_miss_interval": {
"type": "number"
},
"track_overlap_threshold": {
"type": "number"
},
"track_max_duration_frames": {
"type": "integer"
},
"track_send_history": {
"type": "boolean"
},
"post_best_track_frame": {
"type": "boolean"
},
"post_best_track_normalize": {
"type": "boolean"
},
"post_first_track_frame": {
"type": "boolean"
},
"post_last_track_frame": {
"type": "boolean"
},
"tracker_type": {
"type": "string"
},
"track_deep_sort_matching_threshold": {
"type": "number"
},
"track_deep_sort_filter_unconfirmed_tracks": {
"type": "boolean"
},
"track_object_is_principal": {
"type": "boolean"
},
"track_history_active_track_miss_interval": {
"type": "number"
},
"filter_track_min_duration_frames": {
"type": "integer"
},
"extractors_track_triggers": {
"patternProperties": {
".*": {
"$ref": "#/$defs/ExtractorTrackTriggers"
}
},
"type": "object"
}
},
"additionalProperties": false,
"type": "object"
},
"ExtractorTrackTriggers": {
"properties": {
"run_on_start": {
"type": "boolean"
},
"run_on_end": {
"type": "boolean"
},
"run_interval": {
"type": "number"
},
"post_frame": {
"type": "boolean"
}
},
"additionalProperties": false,
"type": "object"
},
"StreamSettings": {
"properties": {
"play_speed": {
"type": "number"
},
"disable_drops": {
"type": "boolean"
},
"imotion_threshold": {
"type": "number"
},
"router_timeout_ms": {
"type": "integer"
},
"router_verify_ssl": {
"type": "boolean"
},
"router_headers": {
"items": {
"type": "string"
},
"type": "array"
},
"router_body": {
"items": {
"type": "string"
},
"type": "array"
},
"ffmpeg_params": {
"items": {
"type": "string"
},
"type": "array"
},
"ffmpeg_format": {
"type": "string"
},
"use_stream_timestamp": {
"type": "boolean"
},
"start_stream_timestamp": {
"type": "integer"
},
"rot": {
"type": "string"
},
"stream_data_filter": {
"type": "string"
},
"video_transform": {
"type": "string"
},
"enable_recorder": {
"type": "boolean"
},
"enable_liveness": {
"type": "boolean"
},
"record_audio": {
"type": "boolean"
},
"detectors": {
"patternProperties": {
".*": {
"$ref": "#/$defs/Detector"
}
},
"type": "object"
}
},
"additionalProperties": false,
"type": "object"
}
}
}
Get Actual GPU Stream Settings as JSON-schema
GET /schemas/stream_settings_gpu
This method gets actual GPU stream settings (outdated format of the stream settings) parameters as JSON schema.
Parameters:
This method doesn’t accept any parameters.
Returns:
JSON representation, free form of JSON schema.
Example
Request
curl -s 'http://localhost:18810/schemas/stream_settings_gpu' | jq
Response
{
"$schema": "http://json-schema.org/draft/2020-12/schema",
"$id": "https://git.int.ntl/FF.Server/universe/videomanager-api/src/stream_settings/stream-settings-gpu",
"$ref": "#/$defs/StreamSettingsGpu",
"$defs": {
"StreamSettingsGpu": {
"properties": {
"play_speed": {
"type": "number"
},
"filter_min_quality": {
"type": "number"
},
"filter_min_face_size": {
"type": "integer"
},
"filter_max_face_size": {
"type": "integer"
},
"normalized_only": {
"type": "boolean"
},
"jpeg_quality": {
"type": "integer"
},
"overall_only": {
"type": "boolean"
},
"use_stream_timestamp": {
"type": "boolean"
},
"ffmpeg_params": {
"items": {
"type": "string"
},
"type": "array"
},
"router_timeout_ms": {
"type": "integer"
},
"router_verify_ssl": {
"type": "boolean"
},
"router_headers": {
"items": {
"type": "string"
},
"type": "array"
},
"router_body": {
"items": {
"type": "string"
},
"type": "array"
},
"start_stream_timestamp": {
"type": "integer"
},
"imotion_threshold": {
"type": "number"
},
"rot": {
"type": "string"
},
"roi": {
"type": "string"
},
"realtime_post_interval": {
"type": "number"
},
"realtime_post_every_interval": {
"type": "boolean"
},
"ffmpeg_format": {
"type": "string"
},
"disable_drops": {
"type": "boolean"
},
"router_full_frame_png": {
"type": "boolean"
},
"router_disable_normalized": {
"type": "boolean"
},
"crop_fullframe_rot": {
"type": "boolean"
},
"realtime_post_first_immediately": {
"type": "boolean"
},
"post_first_track_frame": {
"type": "boolean"
},
"post_last_track_frame": {
"type": "boolean"
},
"track_max_duration_frames": {
"type": "integer"
},
"send_track_history": {
"type": "boolean"
},
"stream_data_filter": {
"type": "string"
},
"video_transform": {
"type": "string"
}
},
"additionalProperties": false,
"type": "object"
}
}
}