Перейти к содержанию

Мониторинг параметров потока при помощи REST API

Описание

WCS поддерживает мониторинг параметров публикации и воспроизведения потока в реальном времени при помощи REST API

Получение общей информации о потоке

Запрос /stream/find позволяет найти поток по заданным условиям фильтрации и получить общую информацию о нем. В сборке 5.2.923 также могут быть запрошены метрики потока.

REST API

REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:

  • HTTP: http://streaming.flashphoner.com:8081/rest-api/stream/find
  • HTTPS: https://streaming.flashphoner.com:8444/rest-api/stream/find

Здесь:

  • streaming.flashphoner.com - адрес WCS-сервера
  • 8081 - стандартный REST / HTTP порт WCS-сервера
  • 8444 - стандартный HTTPS порт
  • rest-api - обязательная часть URL
  • /stream/find - используемый REST-метод

REST-методы и статусы ответа

REST-метод

Пример тела REST-запроса

Пример тела REST-ответа

Статусы ответа

/stream/find

{
   "name":"stream1",
   "published":true,
   "display":["metrics"]
}



[
  {
    "appKey": "flashStreamingApp",
    "sessionId": "/5.129.23.83:51309/95.191.130.39:1935",
    "mediaSessionId": "6af0baf1-f014-48d6-b285-c975951a402f",
    "name": "stream1",
    "published": true,
    "hasVideo": true,
    "hasAudio": true,
    "status": "PUBLISHING",
    "sdp": ...,
    "audioCodec": "mpeg4-generic",
    "videoCodec": "H264",
    "record": false,
    "width": 640,
    "height": 360,
    "bitrate": 0,
    "minBitrate": 0,
    "maxBitrate": 0,
    "quality": 0,
    "history": false,
    "gop": 0,
    "fps": 0,
    "audioBitrate": 0,
    "codecImpl": "",
    "transport": "UDP",
    "cvoExtension": false,
    "createDate": 1616730493789,
    "mediaType": "publish",
    "mediaProvider": "Flash",
    "metrics": {
      "VIDEO_SYNC": 43688,
      "VIDEO_K_FRAMES": 22,
      "AUDIO_SYNC": 43712,
      "VIDEO_NACK": 0,
      "AUDIO_RATE": 129408,
      "AUDIO_LOST": 0,
      "VIDEO_LOST": 0,
      "VIDEO_CODEC": 119,
      "VIDEO_B_FRAMES": 0,
      "VIDEO_PLI": 0,
      "AUDIO_CODEC": 96,
      "VIDEO_RATE": 1187440,
      "VIDEO_WIDTH": 640,
      "VIDEO_GOP_SIZE": 48,
      "VIDEO_HEIGHT": 360,
      "VIDEO_FPS": 24,
      "VIDEO_P_FRAMES": 1027
    }
  }
]

200 - Данные получены

404 - Поток не найден

500 - Неверные параметры запроса

Параметры

Имя параметра

Описание

Пример

display

Дополнительные параметры, которые должны быть отображены в ответе

["metrics"]

mediaSessionId

Идентификатор медиасессии

6af0baf1-f014-48d6-b285-c975951a402f

name

Имя потока

stream1

published

Публикация или воспроизведение

true

hasVideo

Есть ли видео в потоке?

true

hasAudio

Есть ли аудио в потоке?

true

status

Статус потока

PUBLISHING

sdp

SDP потока

audioCodec

Аудио кодек

mpeg4-generic

videoCodec

Видео кодек

H264

record

Ведется ли запись потока

false

width

Ширина картинки, с которой опубликован поток

640

height

Высота картинки, с которой опубликован поток

360

transport

Используемый транспорт WebRTC потока

UDP

cvoExtension

Используется ли WebRTC расширение для ориентации картинки

false

createDate

Дата создания потока

1616730493789

mediaType

Тип потока: публикация или воспроизведение

publish

mediaProvider

Способ публикации или проигрывания (Flash для RTMP)

Flash

minBitrate

Параметры транскодера, созданного по REST API

maxBitrate

quality

gop

fps

audioBitrate

codecImpl

Получение метрик потока

Доступные метрики

Метрика Описание
VIDEO_HEIGHT Высота видео
VIDEO_WIDTH Ширина видео
VIDEO_RATE Битрейт видео
VIDEO_SYNC Синхронизация видео
VIDEO_FPS Частота кадров видео
VIDEO_NACK Количество NACK-запросов
VIDEO_PLI Количество PLI-пакетов
VIDEO_CODEC Видеокодек
VIDEO_K_FRAMES Количество ключевых кадров (I-frames) видео
VIDEO_P_FRAMES Количество P-кадров видео
VIDEO_B_FRAMES Количество B-кадров видео
VIDEO_GOP_SIZE Количество кадров в последней группе между ключевыми кадрами
VIDEO_LOST Количество потерянных пакетов видео
AUDIO_SYNC Синхронизация аудио
AUDIO_RATE Битрейт аудио
AUDIO_LOST Количество потерянных пакетов аудио
AUDIO_CODEC Аудиокодек

REST API

REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:

  • HTTP: http://streaming.flashphoner.com:8081/rest-api/stream/metrics
  • HTTPS: https://streaming.flashphoner.com:8444/rest-api/stream/metrics

Здесь:

  • streaming.flashphoner.com - адрес WCS-сервера
  • 8081 - стандартный REST / HTTP порт WCS-сервера
  • 8444 - стандартный HTTPS порт
  • rest-api - обязательная часть URL
  • /stream/metrics - используемый REST-метод

REST-методы и статусы ответа

REST-метод

Пример тела REST-запроса

Пример тела REST-ответа

Статусы ответа

/stream/metrics

{
   "mediaSessionId" : "72b76eb8-3c01-47f3-b308-a0516d51249b"
}

или

{
   "name" : "testStream"
}
{
    "VIDEO_B_FRAMES": 0,
    "VIDEO_WIDTH": 1920,
    "VIDEO_SYNC": 1583463093448,
    "AUDIO_RATE": 31832,
    "VIDEO_PLI": 0,
    "VIDEO_HEIGHT": 1080,
    "AUDIO_SYNC": 1583463093415,
    "VIDEO_FPS": 36,
    "AUDIO_CODEC": 111,
    "VIDEO_P_FRAMES": 3989,
    "VIDEO_RATE": 684352,
    "VIDEO_CODEC": 119,
    "VIDEO_K_FRAMES": 173,
    "VIDEO_NACK": 1,
    "VIDEO_LOST": 1,
    "AUDIO_LOST": 130
}

200 - Метрики потока получены

404 - Поток не найден

Параметры

Имя параметра Описание Пример
mediaSessionId Идентификатор медиасессии 72b76eb8-3c01-47f3-b308-a0516d51249b
name Имя потока testStream