Документация на 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. Группы каналов

Настройка DVR (Digital Video Recording)

О настройках DVR Anchor Anchor x2

Flussonic Media Server позволяет записывать потоки в архив и затем работать с архивом. Эта функциональность называется Digital Video Recording (DVR).

Настройки архива свои для каждого потока.

Замечание. Все настройки доступны в конфигурационном файле. Более быстрый способ - через веб-интерфейс (UI), там есть основные настройки.

Запись потока включается именно в настройках архива. Чтобы начать запись, достаточно указать место хранения архива. Но, возможно, вы захотите настроить и другие параметры - например, ограничение на размер архива, включить репликацию или кэширование.

Содержание:

Где можно хранить архив Anchor Anchor x2

Flussonic Media Server позволяет вести запись архива:

  • Локально на сервере Flussonic Media Server. См. далее на этой странице.

  • В облачном HTTP хранилище (OpenStack Swift или Amazon S3). См. Хранение архива в облаке.

Настройка DVR в UI Anchor Anchor x2

После того, как вы добавили поток, можно настроить его запись и хранение.

Чтобы настроить DVR для потока:

  1. Откройте администраторский веб-интерфейс к Flussonic Media Server и перейдите в Media.
  2. В списке потоков под Streams перейдите в поток, щелкнув его имя, и перейдите на вкладку DVR.
  3. В настройках DVR для потока укажите:
  • Path (обязательное поле) – локальная директория, куда будет сохраняться поток. Например, /storage.

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

    Можно по мере записи копировать поток частями в другое место при помощи опции copy. Например: /storage copy=/opt/movies

  • Saved duration (опционально) – сколько последних часов (hour) или дней (days) хранить. Если указать 30 days, то запись старше 30 дней будет удаляться.

    Чтобы изменить единицу измерения, щелкните по ней. Доступные единицы - hours и days.

  • Allowed absolute disk usage (опционально) - максимальный объём потребляемого места на диске, по умолчанию в Гигабайтах. Например, 10 Gigabytes.

    Чтобы изменить единицу измерения, щелкните по ней. Доступные единицы - Kilobytes, Megabytes и Gigabytes.

    DVR настройки в UI

Дополнительно, можно настроить репликацию архива и кэширование на SSD.

Увидеть, что поток записывается, можно по индикатору в UI - напротив имени потока будет зелёный индикатор: DVR индикатор

Настройка DVR через файл Anchor Anchor x2

Чтобы начать запись архива, в файл /etc/flussonic/flussonic.conf добавьте параметр dvr для каждого потока, который необходимо записывать.

Пример:

stream channel1 {
  url tshttp://vlc:9090/;
  dvr /storage;
}

stream channel2 {
  url tshttp://vlc:9090/;
  dvr swift://user=office:max&password=secretpass&@prod1.local:8080/movies;
}

При таких настройках, поток channel1 сохраняется в /storage/channel1/, а поток channel2 в облачное хранилище Swift.

Размер архива

Размер архива можно ограничить при помощи опций:

  • 2d
    Глубина архива в днях (d) или часах (h). Примеры: 2d, 10h. Меньше двух часов указывать не рекомендуется.

  • 90%
    Максимальное допустимое заполнение диска в процентах. По умолчанию 95%. Не указывайте 100%, потому что полностью заполненный диск не будет, скорее всего, нормально работать.

    Внимание. Мы рекомендуем указывать одинаковое для всех потоков заполнение диска в процентах, например, для каждого 90%. Иначе возможны конфликты и потеря данных.

  • 10G
    Максимальное допустимое заполнение диска в килобайтах (K), мегабайтах (M) или гигабайтах (G). Пример: 10G. Можно рассчитать, что один мегабитный поток в день создает 10 гигабайт.

Запись по расписанию

  • schedule=8:00-16:00
    Опция schedule задает расписание для записи архива, в виде интервалов времени. Указывается UTC время в часах и опционально минутах, интервал может перехлёстываться через полночь: 22-1:30. Расписание может содержать несколько интервалов, разделенных запятой: 8:00-16:00,22-1:30.

Пример настройки dvr:

stream channel0 {
  url tshttp://vlc:9090/;
  dvr /storage 6h 90% 10G schedule=8:00-16:00 replicate;
  cache /mount/ssd1 3d 50G;
}

Репликация архива Anchor Anchor x2

Если у вас несколько серверов Flussonic Media Servers, можно включить репликацию DVR. Включать репликацию нужно на сервере-рестримере. При этом должны быть указаны сервера-источники в настройках (Media > Origin servers).

По этой теме:

Чтобы включить репликацию в конфигурационном файле, добавьте слово replicate:

stream channel0 {
  url tshttp://vlc:9090/;
  dvr /storage replicate;
}

Чтобы включить репликацию через веб-интерфейс:

  1. Перейдите в Media.
  2. В списке потоков под Streams щелкните имя потока и перейдите на вкладку DVR.
  3. Щелкните enabled под Replication и сохраните настройки (Save).

Кэширование архива на SSD Anchor Anchor x2

Кэширование архива на SSD ускоряет работу с ним - когда пользователи перематывают запись назад и вперёд, видео загружается очень быстро. Flussonic можно настроить, чтобы видео кэшировалось на SSD.

Чтобы включить кэширование на SSD через веб-интерфейс:

  1. В Media, кликните имя потока под Streams, перейдите на вкладку DVR.
  2. Под SSD disk cache укажите:
  • Path - путь к директории на SSD диске где будет храниться кэшированная запись.
  • Также можно ограничить размер кэша (в гигабайтах) и время хранения записи в кэше (в днях).

Чтобы включить кэширование на SSD в файле, добавьте опцию cache:

stream channel0 {
  url tshttp://vlc:9090/;
  dvr /storage;
  cache /mount/ssd1 3d 50G;
}

Копирование потоков частями в другое место Anchor Anchor x2

Flussonic пишет потоки в указанное хранилище посегментно. Можно сделать так, чтобы данные накапливались во временной директории и копировались более крупными порциями в требуемое хранилище - на локальном диске или в облаке.

Как работает копирование

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

Чтобы копировать архив в облако:

В конфигурационном файле укажите параметр copy:

stream chan0 {
  dvr /storage copy=s3://AWS_ACCESS_ID:AWS_SECRET_KEY@s3.amazonaws.com/mybucket 10G;
}

Поток будет записываться в /storage и копироваться частями каждый час в S3.

Чтобы копировать архив в локальное хранилище:

stream chan0 {
  dvr /storage copy=/opt/movies 10G;
}

Поток будет записываться в /storage и копироваться частями каждый час в /opt/movies.

Путь к архиву на диске Anchor Anchor x2

Для каждого потока Flussonic создает директорию внутри той директории, которая указана в настройках архива как путь на диске. Имя новой директории совпадает с именем потока.

Напимер, укажем, что поток my_stream нужно записывать в /storage:

stream my_stream {
  url tshttp://vlc:9090/;
  dvr /storage;
}

Тогда архив потока будет храниться в /storage/my_stream.

Запрет индексирования Anchor Anchor x2

Эта настройка актуальна только для сервисов с UGC (User-generated content):

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

Чтобы быстро определить, какие архивы устарели и какие данные в архиве устарели, Flussonic индексирует потоки, публикуемые пользователями, т.е. создает индексный файл с информацией о потоках и глубине хранения архивов. Очистка архивов происходит при запуске Flussonic и может занимать много времени если на сервере очень много потоков. Чтобы ускорить запуск Flussonic, можно отключить индексирование. Тогда удаление устаревших данных будет происходить только при обращении к архиву.

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

Чтобы запретить индексирование DVR, используйте параметр no_index:

live mylive {
  dvr /storage no_index;
}

Если DVR в облаке (S3, Swift), то при конфигурации с запретом индексирования разные серверы Flussonic смогут вести запись в одно хранилище (при миграции потока с одного сервера на другой).