The available metrics
WCS sends the following stream parameters for acquisition:
Metric | Id | Description |
VIDEO_HEIGHT | 2 | Video height |
VIDEO_WIDTH | 3 | Video width |
VIDEO_RATE | 4 | Video bitrate, bps |
VIDEO_SYNC | 5 | Video synchronization |
VIDEO_FPS | 6 | Video frame rate per second |
VIDEO_NACK | 7 | NACK requests count |
VIDEO_PLI | 8 | PLI packets count |
VIDEO_CODEC | 9 | Video codec |
AUDIO_SYNC | 10 | Audio synchronization |
AUDIO_RATE | 11 | Audio bitrate |
AUDIO_LOST | 12 | Lost audio packets count |
AUDIO_CODEC | 13 | Audio codec |
VIDEO_B_FRAMES | 16 | B-frames count in the stream |
VIDEO_K_FRAMES | 17 | K-frames count in the stream |
VIDEO_P_FRAMES | 18 | P-frames count in the stream |
The available metrics list can be obtained using /api/metric/list request
API | Request | Response | Response status |
---|---|---|---|
WS API | SEND destination:/app/api/metric/list content-length:100 { "requestId":"eb2c2807-8c2f-4418-aebe-03622404e4bb", "realm":"/api/metric/list", "payload": { "id":"3" } } | MESSAGE destination:/user/service content-type:application/json;charset=UTF-8 subscription:sub-1 message-id:3-8 content-length:159 { "requestId":"eb2c2807-8c2f-4418-aebe-03622404e4bb", "status":200, "reason":"SUCCESS", "payload":[ { "id":3, "name":"Video rate", "note":"", "enumName":"VIDEO_RATE" } ] } | 200 OK 400 Object not found 500 Persist exception |
REST API | POST: /api/metric/list "application/json; charset=utf-8" {"id":"3"} | { "status": 200, "reason": "SUCCESS", "payload": [ { "id": 3, "name": "Video rate", "note": "", "enumName": "VIDEO_RATE" } ] } | 200 OK 400 Obkect not found |
Where
- id – metric Id
- name - metric name
- note - metric note
- enumName - metric mnemonic identifier
If metric Id is set, the response will contain information about the metric with this Id only. Otherwise, response will contain list with all the available metrics.
Metrics acquisition principles
Metrics are combined to profiles to collect from specific nodes. Every profile contains specific metrics set and acquisition rate. For a profile, several metric acquisition rules, which are applied to a stream on a node, can be specified.
A number of profiles can be applied to one node (WCS instance). In that case, metric sets and rules from the profiles are summarized, and minimum acquisition rate for same metric is applied. Let's look on the example:
1. The profiles profile1 and profile2 are applied to test1.flashphoner.com node
2. profile1 includes
- VIDEO_RATE, VIDEO_FPS metrics which are acquired with rate 5
- the rule
Stream name == stream1
3. profile2 includes
- VIDEO_RATE, AUDIO_RATE metrics which are acquired with rate 10
- the rule
Stream name == stream1
As the result, for the stream stream1 on test1.flashphoner.com node the following metric sets will be acquired:
- VIDEO_RATE with rate 5
- VIDEO_FPS with rate 5
- AUDIO_RATE with rate 10