Документация на Flussonic Media Server

  1. Быстрый старт
  2. How To
  3. Потоковое вещание
    1. Публикация
    2. Прием мультикаста
    3. Варианты источников
    4. Переключение источников
    5. Плейлисты
    6. Наложение логотипа
    7. Миксер
    8. WebRTC публикация
    9. SDI
    10. Отправка на другие сервера
    11. Распознавание DVB субтитров
  4. Транскодер
    1. Логотип
    2. Hardware
    3. Скриншоты
    4. Мозаика
  5. DRM
    1. Simple CAS
    2. Conax DRM
    3. BuyDRM (KeyOS)
  6. Авторизация
    1. Конструктор бэкендов
    2. Сервис сбора статистики
    3. Domain lock
    4. Middleware
    5. Secure links
    6. Ограничение сессий
    7. Мультиавторизация
    8. Бан IP адресов
    9. DVR
    10. Aliaser
  7. API
    1. HTTP API
    2. Events API
    3. MySQL API
    4. SQL API для кластеров
    5. SNMP
  8. Кластер
    1. Ретрансляция
    2. Кластерный захват
    3. Балансировщик нагрузки
    4. Пиринг
    5. Организация CDN
  9. VOD
    1. Кэш
    2. Облако
    3. Транскодирование файлов
  10. DVR
    1. Настройка
    2. Timeshift
    3. Catchup
    4. Проигрывание
    5. Экспорт в MP4
    6. Доступ по протоколам
    7. Timelapse
    8. API
    9. Кластеризация DVR
    10. Репликация
    11. Облако
  11. Воспроизведение
    1. HLS
    2. embed.html
    3. HTML5 с низкой задержкой
    4. Плеер HTML5 с низкой задержкой
    5. MPEG-TS
    6. RTMP
    7. DASH
    8. HDS
    9. RTSP
    10. multicast, CBR UDP
    11. WebRTC проигрывание
    12. H.265
  12. Администрирование
    1. Установка
    2. Обновление

    3. Конфигурация
    4. Мониторинг
    5. Производительность
    6. Лицензия
    7. LUA скрипты
    8. Безопасность
    9. Let's Encrypt
    10. Миграция
  13. IPTV
    1. Захват спутникового видео
    2. Транскодирование
    3. Middleware в IPTV OTT
    4. Экспорт EPG со спутника
    5. Группы каналов

Ретрансляция потоков

Flussonic Media Server (рестример) может подключиться к другому Flussonic Media Server (источнику), получить список запущенных и доступных по запросу потоков, а затем рестримить их. Вы также получаете прозрачный доступ к архиву на источнике.

Flussonic Media Server позволяет указать несколько серверов-источников и построить отказоустойчивую конфигурацию.

Отличия от HTTP прокси Anchor Anchor x2

Многие CDN предлагают решение проблемы доставки видео, используя кластер из обычных HTTP-прокси серверов, которые кешируют сегменты HLS потока и доставляют их до пользователей.

В отличие от простого HTTP прокси, Flussonic Media Server, установленный на все сервера в сети, предоставляет следующие возможности:

  • вы получаете не только HLS, но и DASH, HDS, RTMP, RTSP, HTTP MPEG-TS, и UDP MPEG-TS;
  • единая авторизация пользователей по всем доступным протоколам;
  • централизированная агрегация сессий и сбор статистики.

Главное отличие между обычным HTTP прокси и рестримингом на Flussonic Media Server в том, что вы доставляете видео между серверами лишь единожды, а на выходе получаете весь функционал Flussonic Media Server на рестриминг сервере.

Это нереализуемо на HTTP прокси, потому что он не работает с видео на низком уровне.

Конфигурация Anchor Anchor x2

Чтобы включить рестриминг в кластере Flussonic Media Server, вам нужно использовать следующие директивы:

  • source — чтобы указать сервер, с которого вы хотите рестримить видео.
  • cluster_key — чтобы Flussonic Media Server мог забрать видео через кластерную авторизацию.

Директива source имеет следующий синтаксис и опции:

cluster_key samekeyforall;

source origin1.tv {
}

source origin2.tv {
  only cbc football;
}

source origin3.tv {
  cluster_key anotherkey;
  except comedy;
}

Вы должны установить одинаковые cluster_key на источнике и рестримере. Кластерный ключ очень важен и его нужно нужно хранить в секрете, потому что он может быть использован для настройки удаленного сервера. Он не передается в открытом виде, только хэш.

Директива source включает автоматический захват потоков с сервера источника. В ней потоки можно разделить на несколько списков:

  • белый список — эти потоки будут статическими (static) на рестримере;
  • серый список — эти потоки будут доступны на рестримере по запросу (ondemand);
  • черный список — эти потоки не будут видны на рестримере.

По умолчанию все работающие потоки с источника попадают в белый список, а все потоки по запросу с источника будут в сером списке рестримера.

Опция except помещает потоки в черный список. Эта опция имеет более высокий приоритет, чем only.

Опция only разделяет доступные потоки (кроме тех, что в черном списке) на белый и серый списки: only – в белый список, остальные не будут статическими и будут ждать запроса для запуска.

Если на сервере-рестримере будут локальные или публикуемые потоки с тем же именем, что и на сервере источнике, тогда поток с источника будет игнорироваться и будет использоваться только поток, настроенный локально.

Дополнительные настройки Anchor Anchor x2

Вы можете применить настройки сразу для всех потоков, запущенных через source:

source origin1 origin2 {
  segments 10;
  auth http://backend/auth.php;
  dvr /storage 2d 95%;
}

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

Если у вас на основном сервере используется опция backup, то вам следует загрузить этот файл на рестример и указать путь:

source origin {
  backup vod/bunny.mp4;
}

Несколько источников Anchor Anchor x2

Можно указать несколько источников на рестримере. Если у нескольких источников будут одинаковые имена потоков, такой поток будет настроен с несколькими URL.

Это значит, что если первый источник упадет или потеряет поток, рестример переключит поток на другой источник.

Когда настроено несколько источников с помощью кластерного захвата, вы получаете действительно высокодоступный кластер.

Протокол M4F Anchor Anchor x2

Flussonic Media Server по умолчанию использует для рестриминга свой внутренний протокол M4F.

Этот протокол гарантирует следующие возможности:

  • потоки между источником и рестримером хорошо сихнронизированы;
  • одинаковые таймстампы кадров;
  • одинаковое тело;
  • нет короткого счетчика таймстапов как в MPEGTS или RTMP: все таймстампы в UTC;
  • сохраняет такую же структуру сегментов, делая byte-to-byte копию с источника для всех протоколов на рестримере;
  • сохраняет одинаковыми номера сегментов на источнике и рестримере;
  • имеет такую же байт-структуру, как формат хранения архива на диске;
  • имеет слать пуш-уведомления клиенту о появлении новых данных;
  • предоставляет рестримеру информацию об архиве источника.

Таким образом, при передаче по протоколу M4F точно передается время и данные. Протокол поддерживает все те кодеки, что и Flussonic.

Наш протокол M4F имеет ряд преимуществ по сравнению с HLS или RTMP:

  • RTMP имеет только миллисекундную точность таймстампов, и он ломает таймстампы;
  • RTMP имеет лишь 24 (или 32 бита) таймер миллисекунд, MPEG-TS дает 33 бита для таймера, основанного на 90Khz. Это значит, что сложно синхронизировать время между источником и рестримером;
  • RTMP и MPEG-TS не имеют способов для сихнронизации времени потока и реального времени;
  • RTSP имеет механизм для сихнронизации времени потока и реального времени, но имеет проблемы с доставкой B-кадров и некоторых кодеков;
  • У M4F достаточно места чтобы сохранить реальное время в 90khz, давая аблюсолютное время каждого кадра с высокой точностью.