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

Прогрев CDN потоков на Edge

Описание

Обычно проигрывание потока c Edge сервера в CDN для первого подписчика стартует позже, чем для всех последующих, поскольку необходимо время на установку соединений для передачи медиа между всеми узлами маршрута. Насиная со сборки 5.3.295, потоки в CDN могут быть прогреты, или заранее захвачены на Edge c Origin сервера (через Transcoder сервер при необходимости).

Настройка прогрева CDN потоков

Прогрев CDN потоков включается на Edge при помощи параметра

cdn_warmup_enabled=true

По умолчанию, ни один поток не захватывается. Для того, чтобы прогрев стартовал, необходимо описать фильтры потоков в файле настроек /usr/local/FlashphonerWebCallServer/conf/cdn_warmup_trap.json. Таким образо, предотвращается перегрузка кналов между серверами внутри CDN и самих серверов.

Простейший пример настройки для захвата на Edge всех потоков, публикуемых на Origin (не рекомендуется использовать в эксплуатации)

{
    "streams":
    [
        {
            "streamName": ".*",
            "profiles" : [ "SOURCE" ]
        }
    ] 
}

Пример более сложного фильтра:

  • потоки с именем abrStream захватываются для проигрывания как ABR по двум профилям и в оригинальном качестве без транскодинга;
  • потоки с именем sourceStream захватываются только в оригинальном качестве
  • все остальные потоки захватываются в качестве 360p
{
    "streams" : 
    [ 
        {
            "streamName" : "abrStream.*",
            "serverIps" : [ "192.168.88.0/24" ],
            "abr": true,
            "profiles" : [ "SOURCE", "-720p", "-360p" ]
        },
        {
            "streamName" : "sourceStream.*",
            "serverIps" : [ "192.168.88.0/24" ],
            "profiles" : [ "SOURCE" ]
        },
        {
            "streamName" : ".*",
            "serverIps" : [ "192.168.88.0/24" ]
        }
    ],
    "defaultProfile" : "-360p"
}

Здесь:

  • streamName - маска имени потока для захвата
  • serverNames - список доменных имен Origin серверов, на которых должен быть опубликован поток
  • serverIps - список IP адресов Origin серверов, на которых должен быть опубликован поток
  • profile - профиль транскодинга потока, должен быть описан в файле cdn_profiles.yml
  • SOURCE - специальное ключевое слово для захвата потока в оригинальном качестве (без любого транскодинга видео)
  • defaultProfile - профиль транскодинга по умолчанию, используется для всех потоков, подходящих под фильтры для которых не задан определенный список профилей

TПоток, подходящий под фильтр, будет захвачен с Origin, как только опубликуется, и его захват не будет остановлен до тех пор, пока не остановится публикация.

REST API для управления прогревом

Прогревом CDN потоков можно управлять при помощи REST API /rest-api/v3/cdn/warmup