Videos
List video archives
To list video archives, use the following method:
GET /videos/
The REQUEST contains QUERY-STRING PARAMETERS.
Name |
Schema |
Description |
---|---|---|
|
array of integer |
Select videos included in these cases. |
|
date-time |
Select objects with |
|
date-time |
Select objects with |
|
number |
Select objects with |
|
date-time |
Select objects with |
|
date-time |
Select objects with |
|
number |
Select objects with |
|
number |
Select objects with |
|
string |
Number of results to return per page. |
|
string |
Select video archives with this |
|
string |
Available fields: id, created_date, name. |
|
string |
Pagination cursor value. |
|
string |
Select video archives with this save_to field. |
For example, select some number of results for limit
.
CURL example
curl -X GET "http://<findface-ip:port>/videos/?limit=2" \
-H "Accept: application/json" \
-H "Content-Language: ru" \
-H "Accept-Language: ru" \
-H "Authorization: Token <token>" \
If the response is successful (OK: 200), it returns an object that contains with the following parameters. Example.
Name |
Schema |
---|---|
|
string┃null |
|
string┃null |
|
array |
The results
contain an array with the following parameters:
Name |
Schema |
Description |
---|---|---|
|
integer 🆁 |
ID of the video archives. |
|
integer |
Camera group. |
|
string┃null |
Name of the video archives. Constraints: Max 256 chars. |
|
string┃null |
URL. |
|
integer┃null |
Camera. |
|
date-time 🆁 |
Video processing start date. |
|
boolean 🆁 |
Processing is active. |
|
uri 🆁 |
Screenshot URL. |
|
{…} |
Serializer mixin that raises ValidationError if excess fields are presented. Can be used in nested serializers. |
|
number 🆁 |
Source length in seconds. |
|
{…} |
Additional status information. |
|
boolean 🆁 |
|
|
boolean 🆁 |
|
|
integer 🆁 |
Number of created faces. |
|
integer 🆁 |
Video file size in the archive. |
|
date-time 🆁 |
Object creation date. |
|
integer 🆁 |
Number of created bodies. |
|
integer 🆁 |
Number of created cars. |
|
integer┃null |
Case. |
|
integer┃null 🆁 |
Count of face clusters created from this video. |
|
integer┃null 🆁 |
Count of body clusters created from this video. |
|
integer┃null 🆁 |
Count of car clusters created from this video. |
Note
Cases are not supported in FindFace Multi 2.1 and are kept in API only.
Response example
{
"next_page": null,
"prev_page": null,
"results": [
{
"id": 2,
"camera_group": 1,
"name": "file.mp4",
"url": null,
"camera": null,
"processing_start_date": null,
"active": false,
"screenshot": "http://<findface-ip:port>/videos/2/screenshot/",
"stream_settings": {
"detectors": {
"face": {
"filter_max_size": 8192,
"filter_min_quality": 0.45,
"filter_min_size": 60,
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": true,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"realtime_post_every_interval": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"roi": "",
"track_interpolate_bboxes": true,
"track_max_duration_frames": 0,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_send_history": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true
},
"body": null,
"car": null
},
"disable_drops": true,
"ffmpeg_format": "",
"ffmpeg_params": [],
"imotion_threshold": 0,
"play_speed": -1,
"rot": "",
"router_timeout_ms": 15000,
"router_verify_ssl": true,
"start_stream_timestamp": 0,
"stream_data_filter": "",
"use_stream_timestamp": false,
"video_transform": "",
"enable_recorder": false,
"enable_liveness": false
},
"source_len": null,
"health_status": {
"enabled": false,
"status": "DISABLED",
"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,
"job_starts": 0
},
"code": "gray",
"code_desc": "Обработка видео не запущена"
},
"finished": false,
"queued": false,
"face_count": 0,
"file_size": 2259950,
"created_date": "2023-01-12T08:57:36.811305Z",
"body_count": 0,
"car_count": 0,
"case": null,
"face_cluster_count": 0,
"body_cluster_count": 0,
"car_cluster_count": 0
}
]
}
Add a new video archive
To add video archives, use the following method:
POST /videos/
The REQUEST BODY is required and contains application/json object with the following parameters:
Name |
Schema |
Description |
---|---|---|
|
integer |
ID value of camera group. |
|
string┃null |
Name of the video archive. Constraints: 1 to 256 chars. |
|
string┃null |
Constraints: Min 1 chars. |
|
integer┃null |
Camera. |
|
{…} |
Serializer mixin that raises ValidationError if excess fields are presented. Can be used in nested serializers. |
|
integer┃null |
Case. |
Note
Cases are not supported in FindFace Multi 2.1 and are kept in API only.
Request example
Tip
This example is given for reference only, substitute your values in the corresponding fields. You may fill in only the required fields, and the others will be by default.
{
"camera_group": 0,
"name": "A",
"url": "A",
"camera": 0,
"stream_settings": {
"detectors": {
"face": {
"filter_max_size": 0,
"filter_min_quality": 0,
"filter_min_size": 0,
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 0,
"overall_only": false,
"post_best_track_frame": false,
"post_best_track_normalize": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"realtime_post_every_interval": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 0,
"roi": "string",
"track_interpolate_bboxes": false,
"track_max_duration_frames": 0,
"track_miss_interval": 0,
"track_overlap_threshold": 0,
"track_send_history": false,
"tracker_type": "string",
"track_deep_sort_matching_threshold": 0,
"track_deep_sort_filter_unconfirmed_tracks": false
},
"body": {
"filter_max_size": 0,
"filter_min_quality": 0,
"filter_min_size": 0,
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 0,
"overall_only": false,
"post_best_track_frame": false,
"post_best_track_normalize": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"realtime_post_every_interval": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 0,
"roi": "string",
"track_interpolate_bboxes": false,
"track_max_duration_frames": 0,
"track_miss_interval": 0,
"track_overlap_threshold": 0,
"track_send_history": false,
"tracker_type": "string",
"track_deep_sort_matching_threshold": 0,
"track_deep_sort_filter_unconfirmed_tracks": false
},
"car": {
"filter_max_size": 0,
"filter_min_quality": 0,
"filter_min_size": 0,
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 0,
"overall_only": false,
"post_best_track_frame": false,
"post_best_track_normalize": false,
"post_first_track_frame": false,
"post_last_track_frame": false,
"realtime_post_every_interval": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 0,
"roi": "string",
"track_interpolate_bboxes": false,
"track_max_duration_frames": 0,
"track_miss_interval": 0,
"track_overlap_threshold": 0,
"track_send_history": false,
"tracker_type": "string",
"track_deep_sort_matching_threshold": 0,
"track_deep_sort_filter_unconfirmed_tracks": false
}
},
"disable_drops": false,
"ffmpeg_format": "string",
"ffmpeg_params": [
"A"
],
"imotion_threshold": 0,
"play_speed": 0,
"rot": "string",
"router_timeout_ms": 0,
"router_verify_ssl": false,
"start_stream_timestamp": 0,
"stream_data_filter": "string",
"use_stream_timestamp": false,
"video_transform": "string",
"enable_recorder": false,
"enable_liveness": false
},
"case": 0
}
For example, you may send these parameters.
{
"camera_group": 1,
"name": "Pitt&Jolie"
}
CURL example
curl -X POST "http://<findface-ip:port>/videos/" \
-H "Accept: application/json" \
-H "Content-Language: ru" \
-H "Accept-Language: ru" \
-H "Authorization: Token <token>" \
-H "Content-Type: application/json" \
-d '{"camera_group":1,"name":"Pitt&Jolie"}' \
If the response is successful (Created: 201), it returns an object that contains parameters. Example.
Response example
{
"id": 6,
"camera_group": 1,
"name": "Pitt&Jolie",
"url": null,
"camera": null,
"processing_start_date": null,
"active": false,
"screenshot": "http://<findface-ip:port>/videos/6/screenshot/",
"stream_settings": {
"detectors": {
"face": {
"filter_max_size": 8192,
"filter_min_quality": 0.45,
"filter_min_size": 60,
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": true,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"realtime_post_every_interval": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"roi": "",
"track_interpolate_bboxes": true,
"track_max_duration_frames": 0,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_send_history": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true
},
"body": {
"filter_max_size": 8192,
"filter_min_quality": 0.6,
"filter_min_size": 70,
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": true,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"realtime_post_every_interval": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"roi": "",
"track_interpolate_bboxes": true,
"track_max_duration_frames": 0,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_send_history": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true
},
"car": {
"filter_max_size": 8192,
"filter_min_quality": 0.73,
"filter_min_size": 100,
"fullframe_crop_rot": false,
"fullframe_use_png": false,
"jpeg_quality": 95,
"overall_only": true,
"post_best_track_frame": true,
"post_best_track_normalize": true,
"post_first_track_frame": false,
"post_last_track_frame": false,
"realtime_post_every_interval": false,
"realtime_post_first_immediately": false,
"realtime_post_interval": 1,
"roi": "",
"track_interpolate_bboxes": true,
"track_max_duration_frames": 0,
"track_miss_interval": 1,
"track_overlap_threshold": 0.25,
"track_send_history": false,
"tracker_type": "simple_iou",
"track_deep_sort_matching_threshold": 0.65,
"track_deep_sort_filter_unconfirmed_tracks": true
}
}
},
"source_len": null,
"health_status": {
"enabled": false,
"status": "WAITING_FOR_SYNC",
"msg": "",
"statistic": {},
"code": "red",
"code_desc": "Отсутствует задача в видео менеджере. Дождитесь синхронизации."
},
"finished": false,
"queued": false,
"face_count": 0,
"file_size": 0,
"created_date": "2023-01-18T08:38:52.119129Z",
"body_count": 0,
"car_count": 0,
"case": null,
"face_cluster_count": 0,
"body_cluster_count": 0,
"car_cluster_count": 0
}
Then point its id
to upload the source file with PUT /videos/{id}/upload/source_file/
.
Upload video file
To upload a video file, use the following method:
PUT /videos/{id}/upload/source_file/
The request contains required PATH PARAMETERS:
Name |
Schema |
Description |
---|---|---|
|
integer |
A unique integer value identifying this video. |
In REQUEST BODY attach your video source file with id
of the video archive.
Returns:
Created: 201 – in success.
Not Found: 404 – if fail.
CURL example
curl -X PUT "http://<findface-ip:port>/videos/6/upload/source_file/" \
-H "Content-Language: ru" \
-H "Accept-Language: ru" \
-H "Authorization: Token <token>" \
-H "Content-Type: video/mp4" \
--data-binary @pittjolie.mp4 \
Start video archive processing
To start video archive processing, use the following method:
POST /videos/{id}/process/
The REQUEST contains id
in PATH PARAMETERS, identifying unique integer value of the video archive.
CURL example
curl -X POST "http://<findface-ip:port>/videos/6/process/" \
-H "Content-Language: ru" \
-H "Accept-Language: ru" \
-H "Authorization: Token <token>" \
Returns:
OK: 200 – in success.
Not Found: 404 – if fail.
Useful requests
GET /videos/
POST /videos/
GET /videos/{id}/
PUT /videos/{id}/
DELETE /videos/{id}/
POST /videos/{id}/process/
GET /videos/{id}/screenshot/
POST /videos/{id}/screenshot/
POST /videos/{id}/stop/
PUT /videos/{id}/upload/source_file/
GET /videos/count/