Документация на 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. Транскодирование файлов
    4. Мультибитрейтный VOD из файлов
  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. Группы каналов
    6. Реклама

Серверные плейлисты

Серверные списки воспроизведения создаются провайдером на сервере Flussonic. Они позволяют запускать ваш собственный телеканал, где вы выбираете, какие файлы и потоки транслировать.

Серверные плейлисты имеют ряд недостатков при их использовании в Интернете для вставки видео на сайт:

  • невозможность таргетировать рекламу;
  • невозможность учитывать рекламу через adriver и другие подобные сети;
  • сложность сделать мультибитрейтной доставки: разные файлы могут иметь разное количество разных битрейтов;
  • технически неоправданно сложно делать отмотку назад, а это одно из основных преимуществ интернет-доставки по сравнению с эфирной;
  • пауза слишком сложна в реализации.

Невозможность реализации адекватной системы учета рекламы сводит на нет все желание использовать серверные плейлисты. Поэтому вместо серверных плейлистов рекомендуется использовать клиентские плейлисты, когда абонент IPTV сам формирует плейлист из доступных каналов.

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

Применение серверных плейлистов Anchor Anchor x2

Серверные плейлисты разумно использовать для:

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

Создание серверных плейлистов Anchor Anchor x2

Приведем здесь обзорно процесс создания плейлиста в Flussonic Media Server.

Прежде всего, поместите видео файлы на сервер и настройте VOD локацию (см. ниже).

Затем надо составить файл плейлиста. Пусть он будет в каталоге /tmp/playlist.txt. Можно расположить и на другом сервере. В плейлисте перечислите файлы для проигрывания:

vod/video1.mp4
vod/video2.mp4

В конфигурационном файле нужно указать VOD-локацию и поток, который будет проигрывать плейлист.

http 80;
stream playlist1 {
 url playlist:///tmp/playlist.txt;
}
stream playlist2 {
 url playlist://http://HOST/playlist.txt;
}
file vod {
 path /var/movies;
}

Если в каталоге /var/movies есть файлы video1.mp4 и video2.mp4, то их проигрывание начнется сразу же и будет зациклено.

В плейлист можно добавить управляющие команды:

#EXT-X-MEDIA-SEQUENCE:20
#EXT-X-PROGRAM-DATE-TIME:2013-02-12T12:58:08Z
vod/video1.mp4
#EXTINF:64
vod/video2.mp4

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

Управляющие команды Anchor Anchor x2

Плейлист поддерживает управляющие команды:

  • #EXT-X-MEDIA-SEQUENCE — номер первого элемента плейлиста. Используется для правильной ротации и обновления плейлиста.
  • #EXTINF — продолжительность в секундах проигрывания элемента плейлиста. Может использоваться для вставки прямого эфира.
  • #EXT-X-UTC — Unix Timestamp того времени, когда надо начать проигрывать элемент плейлиста
  • #EXT-X-PROGRAM-DATE-TIME — время начала проигрывания элемента плейлиста в формате ISO 8601: 2013-02-12T12:58:38Z по GMT.

После завершения каждого файла плейлист перечитывается.

Надо учитывать следующие правила обработки плейлистов:

  1. Если указана опция EXT-X-MEDIA-SEQUENCE, то запоминается последний проигранный номер и после перечитывания проигрывание продолжается со следующего номера. То есть содержимое нового плейлиста может быть любым, синхронизация будет осуществляться со следующего номера. Если в новом плейлисте все номера меньше, чем последний проигранный, то плейлист будет каждую секунду перечитывать файл, ожидая появления правильного номера;
  2. Если опция EXT-X-MEDIA-SEQUENCE не указана и сам файл плейлиста не менялся, то проигрывается следующий элемент. Если менялся, то проигрывание начинается с начала.

Использование потоков в плейлисте Anchor Anchor x2

Например, у вас на Flussonic есть такие два потока: cam1 и cam2:

stream cam1 {
 url rtsp://192.168.1.21:554/user=admin&password=&channel=0&stream=0;
}
stream cam2 {
 url rtsp://192.168.1.22:554/user=admin&password=&channel=0&stream=0;
}

В плейлисте playlist.txt запишем имена потоков:

#EXTINF:60
cam1
#EXTINF:60
cam2

Информация о состоянии плейлиста (playlist) Anchor Anchor x2

HTTP API позволяет запросить текущее состояние серверного плейлиста и получить JSON ответ с данными.

URL: /flussonic/api/playlist/STREAM_NAME

Пример: http://example.flussonic.com:8080/flussonic/api/playlist/example_stream

Параметры: 

  • STREAM_NAME — имя потока. Обязательный параметр

Ответ: JSON вида

{
    "current_entry":"vod/ir.mp4",   //Идентификатор текущего элемента в плейлисте
    "current_type":"file",   //Тип текущего элемента в плейлисте
    "duration":null,   //Длительность текущего элемента в миллисекундах (null - неизвестна)
    "position":5.22e4   //Позиция проигрывания внутри текущего элемента, в миллисекундах
}