Документация на 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 получает поток видео-данных. Источником может быть IP-камера, спутник, HTTP сервер и т.д. Для указания источника нужно знать его адрес и видео-протокол, по которому Flussonic его получает, т.е. нужно знать URL.

Для передачи видео-данных между серверами Flussonic Media Server мы рекомендуем использовать внутренний протокол Flussonic — M4F. Например, он подходит для репликации DVR архива, для рестриминга отдельных потоков в кластере.

Важно. Flussonic Media Server не поддерживает тип источника http, и адрес источника вида http://host/path не будет работать. Требуется более детально указывать, что это — HTTP MPEG-TS, HLS или другой протокол. Ниже на этой странице показаны варианты URL для разных протоколов.

Важно. В качестве источника не указывайте файл на сервере. Раздача файлов настраивается по-другому. Подробнее читайте в статье VOD — вещание файлов.

M4F

Используется для передачи между серверами Flussonic.

  • m4f://hostname:port/stream — синтаксис
  • m4f://flussonic.example.com/channel_01 — пример

О протоколе

MPEG-TS по HTTP

  • tshttp://hostname:port/stream — синтаксис (захват по HTTP)
  • tshttps://hostname:port/stream — синтаксис (захват по HTTPS)
  • tshttp://192.168.100.1/worldnews.ts — пример настоящего URL

MPEG-TS по UDP

  • udp://239.255.1.1:5500 — мультикаст URL
  • udp://239.255.1.1:5500/192.168.10.1 — захват мультикаста через указанный интерфейс
  • udp://192.168.0.1:12345 — юникаст URL

MPEG-TS по TCP

  • tstcp://192.168.0.1:54321

HLS

  • hls://hostname/path/to/manifest.m3u8 — синтаксис
  • hls://10.0.0.1/news.m3u8 — пример настоящего URL
  • hls://example.com/news/index.m3u8 — пример настоящего URL.
  • hlss://hostname/path/to/manifest.m3u8 — захват по HTTPS.
  • hls2://example.com/news/index.m3u8 — захват мультибитрейтного HLS источника.

По умолчанию, используя hls://, Flussonic Media Server будет захватывать только одно из доступных качеств.

Для захвата мультибитрейтного источника укажите hls2://.

При запуске потока Flussonic Media Server проверяет, что источник не завис, скачивая несколько раз индекс.

Проверка может быть отключена с помощью опции skip_stalled_check:

stream ort {
  url hls://source:8080/stream/index.m3u8 skip_stalled_check=true;
}

RTSP

Одного IP адреса камеры недостаточно для получения с нее видео. Всегда нужно указать ещё один путь. Он не всегда приводится в документации, поэтому, возможно, придется обращаться к продавцу или производителю камеры.

  • rtsp://hostname/path — синтаксис
  • rtsp://user:password@ip/path — URL с указанием авторизации
  • rtsp2://hostname/path — включает транскодирование звука в AAC. Подробнее
  • rtsp://192.168.0.100/h264 — пример настоящей ссылки

RTMP

  • rtmp://hostname/application/stream
  • rtmp://10.0.0.1/live/news

Протокол требует, что в URL было не меньше двух сегментов. Первый сегмент, по умолчанию, используется для указания имени RTMP приложения (application). Если название RTMP приложения на сервере состоит больше чем из одного сегмента, то в адресе надо указать два слеша для явного разделения на application и stream name.

MPEG-TS опции

Для tshttp://, udp://, tstcp:// источников можно указать дополнительные опции:

Захват конкретной MPEG-TS программы и PID-ы:

stream ort {
  url tshttp://source:8080/stream program=21 pids=45,46,47;
}

Отклонение субтитров

Начиная с версии 18.08, Flussonic Media Server по умолчанию всегда принимает субтитры от публикуемых потоков. Это справедливо как для публикаций в статический поток, так и по динамическому имени. Теперь не нужно явно указывать allow_subtitles=true.

Однако если субтитры потока не нужны, эту опцию следует установить в false:

stream ort {
  url tshttp://source:8080/stream allow_subtitles=false;
}

Замечание. Для live-потоков субтитры всегда включены. Опция allow_subtitles не поддерживается для live публикаций, и выключить субтитры в этом случае не получится.

Включить проброс NIT-таблицы:

stream ort {
  url tshttp://source:8080/stream bypass_nit=true;
}

Включите эту опцию, если хотите получить EPG на выходе Flussonic.

HTTP опции подключения

При подключении к источнику по HTTP протоколам может потребоваться указать опредленный User-Agent:

stream example {
  url tshttp://source:8080/stream user_agent="VLC"
}

Или заголовок, например, Referer:

stream example {
  url tshttp://source:8080/stream header.Referer=https://flussonic.com;
}

SHOUTcast

  • shout://example.com/radio

Захват SHOUTcast, ICEcast радио потоков.

Таймшифт

  • timeshift://ipcam/3600
  • timeshift://news/10600

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

Миксер

  • mixer://stream1,stream2

Позволяет склеить видеодорожку из первого потока с аудиодорожкой из второго. Подробнее в отдельной статье.

Мозаика

  • mosaic://cam1,cam2,cam3,cam4?fps=20&preset=ultrafast&bitrate=1024k&size=340x240&mosaic_size=4

Позволяет собрать несколько потоков на один экран (мозаика). Подробнее в отдельной статье.