Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • предотвращение двойного транскодирования одного и того же потока в CDN
  • отображение расширенной информации о CDN
  • контроль пропускной способности каналов между серверами CDN

Предотвращение двойного транскодирования одного и того же потока в CDN

...

При этом для узла в статусе ACTIVE отображается версия CDN, которая получена от узла в результате согласования версий, для узла в статусе PASSIVE - версия, заданная в настройках текущего узла (см ниже)

Контроль качества каналов между серверами CDN

В сборке 5.2.483 добавлена возможность контроля качества каналов в направлении Origin -> Transcoder -> Edge. Для этого необходимо установить интервал отсылки статистики исходящего битрейта

Code Block
themeRDark
outbound_video_rate_stat_send_interval=1

на Origin и Transcoder узлах.

В этом случае на стороне узла, принимающего поток, периодически сравнивается битрейт публикации или воспроизведения с битрейтом на стороне узла, отправляющего поток. При устойчивом их расхождении диагностируется снижение пропускной способности канала. Пики и резкие изменения сглаживаются фильтром Калмана. Показатель качества канала и статистику для потока можно получить при помощи REST API.

Получение статистики качества при помощи REST API

  • HTTP: http://test.flashphoner.com:8081/rest-api/cdn/stats/print

  • HTTPS: https://test.flashphoner.com:8444/rest-api/cdn/stats/print

Здесь:

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

REST запросы необходимо отправлять на сервер, на котором необходимо получить статистику входящего потока. Например, на Edge можно получить статистику для входящего потока, полученного с Origin или Transcoder, а на Transcoder для потока, полученного с Origin.

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

REST-метод

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

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

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

Описание

/cdn/stats/print

Code Block
languagejs
themeRDark
{
 "name":"test",
 "host":"192.168.0.111",
 "format":"json"
}




Code Block
languagejs
themeRDark
{
    "192.168.0.111": [
        {
            "fps": 30, 
            "inboundBitrate": 1658292, 
            "nack": 0, 
            "name": "test", 
            "outboundBitrate": 1692676, 
            "quality": "PERFECT"
        }
    ]
}

200 – OK

404 - Stream not found

Получить статистику потока

Параметры

Параметр

Описание

Пример

name

Имя потока

test

hostУзел, с которого получен поток192.168.0.111
formatФормат ответаjson
inboundBitrateВходящий (полученный) битрейт1658292
outboundBitrateИсходящий (передаваемый) битрейт1692676
nackКоличество NACK0
fpsЧастота кадров потока30
qualityКачество каналаPERFECT

Запрос без указания имени потока вернет информацию по всем потокам, получаемым с указанного узла CDN. Запрос без указания узла вернет информацию по всем потокам, получаемым с других узлов CDN, если не указано имя потока.

Форматы получения статистики

По умолчанию, статистика возвращается в формате JSON

Code Block
languagejs
themeRDark
POST /rest-api/cdn/stats/print HTTP/1.1
Content-Length: 19
Content-Type: application/json
Host: test.flashphoner.com:8081
{
    "name": "test"
}

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 125
Content-Type: application/json
{
    "192.168.0.111": [
        {
            "fps": 31, 
            "inboundBitrate": 1052794, 
            "nack": 81, 
            "name": "test", 
            "outboundBitrate": 1048518, 
            "quality": "PERFECT"
        }
    ]
}

Также поддерживается формат Prometeus

Code Block
themeRDark
POST /rest-api/cdn/stats/print HTTP/1.1
Content-Length: 43
Content-Type: application/json
Host: test.flashphoner.com:8081
{
    "format": "prometheus", 
    "name": "test"
}

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Length: 397
Content-Type: plain/text

cdn_connection_quality{param="inboundBitrate",node="192.168.0.111",name="test"} 1249049
cdn_connection_quality{param="outboundBitrate",node="192.168.0.111",name="test"} 1240717
cdn_connection_quality{param="quality",node="192.168.0.111",name="test"} 3
cdn_connection_quality{param="fps",node="192.168.0.111",name="test"} 30
cdn_connection_quality{param="nack",node="192.168.0.111",name="test"} 81

Показатель качества принимает следующие значения

JSONPrometheusОписание
UNKNOWN0Качество неизвестно, сервер не получает медиа пакеты
BAD1Качество плохое
GOOD2Качество хорошее
PERFECT3Качество отличное

Обратная совместимость с CDN 2.2, 2.1, 2.0

...