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

Описание SQA

Подсистема Stream Quality Analyzer (SQA) предназначена для сбора статистических данных WebRTC при публикации и проигрывании медиа потоков на стороне клиента и для проверки метрик качества потока на основе собранных данных. Это дает возможность определить проблемы стриминга на стороне клиента, такие как плохой сетевой канала, производительность кодирования/декодирования видео в браузере и т.д..

Как это работает

Сбор метрик WebRTC стриминга

На стороне клиента собираются метрики WebRTC потока, публикуемого или играемого в браузере или при помощи WebRTC библиотеки на мобильном устройстве

Attention

Никаких персональных данных не собирается. Для проверки качества стриминга необходимо и достаточно только данных WebRTC статистики

Пачки собранных метрик отправляются через Websocket или HTTP/HTTPS соединение на точку приема метрик. WCS, используемый для стриминга, может сам принимать метрики. Например, в случае небольшого решения все-в-одном на одном физическом или виртуальном сервере данные могут передаваться так

В сложных распределенных сетях стриминга рекомендуется использовать отдельную HTTPS точку приема метрик

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

Анализ метрик WebRTC стриминга

Метрики, собранные для определенного медиапотока, анализируются при помощи REST API запроса /rest-api/stream_metrics_analyzer

POST /rest-api/stream_metrics_analyzer HTTP/1.1
Host: localhost:8081
Content-Type: application/json

{
    "mediaSessionId": "7324b000-a246-11f0-822a-dd36fbada6fa",
    "from": "0",
    "to": "0"
}

Здесь

  • mediaSessionId - идентификатор, ассоциированный с медиа потоком на WCS сервере. Его значение для потока может быть получено REST API запросом /rest-api/v3/stream/find во время публикации или проигрывания потока.
  • from и to определяют границы интервала времени, за который буду выбраны метрики для анализа, 0 означает отсутствие границ (с начала и до конца)

В ответ на запрос возвращается список возможных проблем при публикации или проигрывании указанного потока

{
  "Video": {
    "status": "PROBLEM",
    "problems": [
      {
        "startTimestamp": "1759708392408.411",
        "endTimestamp": "1759708392408.411",
        "mediaSessionId": "7324b000-a246-11f0-822a-dd36fbada6fa",
        "level": "WARN",
        "message": "FPS deviates significantly from expected value:  fps=0.00, avg=28.50, deviation=100.00%",
        "metricName": "framesPerSecond"
      },
      {
        "startTimestamp": "1759708392408.411",
        "endTimestamp": "1759708392408.411",
        "mediaSessionId": "7324b000-a246-11f0-822a-dd36fbada6fa",
        "level": "ERROR",
        "message": "Video resolution does not match expected parameters:  (actual=0x0, expected=640x480, timestamp=1759708392408.411)",
        "metricName": "frameWidth/frameHeight/frameWidth/frameHeight"
      }
    ]
  }
}

Существует также инструмент визуального анализа, отображающий графики метрик и подсвечивающий возможные проблемы на этих графиках