Документация на 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 есть встроенный транскодер.

Содержание:

Поддерживаются протоколы RTMP, RTSP, MPEG-TS (HTTP и UDP).

Протокол HLS поддерживается частично — некоторые источники могут не транскодироваться. Работоспособность вашего источника HLS с транскодером необходимо каждый раз проверять самостоятельно.

Важно

Транскодирование является крайне ресурсоемким процессом (по CPU) и включает в себя следующие этапы:

  1. Декодирование исходного потока.
  2. Обработка и кодирование сырого потока в соответствии с заданными параметрами.

Рассчитывайте от 5 до 20 каналов на один сервер в зависимости от настроек.

Установка Anchor Anchor x2

Установите пакет flussonic-ffmpeg из того же репозитория, что и пакет flussonic.

apt-get -y install flussonic-ffmpeg

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

Используя конфиг-файл /etc/flussonic/flussonic.conf

Настройка транскодера задается в виде текстовой строки в конфигурационном файле /etc/flussonic/flussonic.conf или в административном интерфейсе.

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

Транскодер

Транскодер для входящего потока в конфигурационном файле /etc/flussonic/flussonic.conf включается следующим образом:

stream ort {
  url  udp://239.0.0.1:5000;
  transcoder vb=2048k size=1280x720 preset=fast ab=128k;
}

Для применения настроек не забудьте выполнить /etc/init.d/flussonic reload

С помощью веб-интерфейса

Для включения транскодера через административный интерфейс Flussonic Media Server:

  • В меню «Media» выберите нужный канал
  • Откройте вкладку «Process».
  • В строке «Option for transcoding» введите опции в формате vb=2048k size=1280x720 preset=fast ab=128k
  • Для сохранения нажмите «Save».

Транскодер

Примеры настройки транскодирования потока Anchor Anchor x2

Пример настройки параметров одного потока:

Транскодер

Пример:

vb=2048k preset=fast ab=128k

Примеры настройки параметров мультибитрейтного потока:

Транскодер

Пример:

vb=2048k preset=fast vb=700k size=720x576 preset=fast vb=300k size=320x240 preset=fast ab=128k

Транскодер

Пример:

vb=copy vb=1600k size=1280x720 preset=fast vb=400k size=640x480 preset=fast ab=copy

Опции Anchor Anchor x2

Видео опции:

vb

vb — (video bitrate) — параметр, задающий битрейт видео дорожки. Задаётся в виде числового значения (1000k, 1500k, 2000k и т.д.). Значение должно обязательно заканчиваться на k. Каждое указание опции vb создает новую видео дорожку в выходном потоке.

Пример:

vb=2048k ab=128k

Опция vb=copy сохраняет параметры оригинального потока, то есть просто копируется в исходящий поток.

preset

preset — аналог encoder preset из стандартного набора ffmpeg. Влияет на качество и скорость загрузки. Указывается отдельно для каждого видеопотока. По умолчанию — medium.

Пример:

vb=2048k preset=fast ab=128k

Подробнее о пресетах ниже.

size

size — задает размеры видео. Указывается отдельно для каждого видеопотока.

Пример:

vb=2048k size=1280x720 ab=128k

logo

logo — позволяет наложить логотип.

Пример:

vb=2048k preset=fast logo=/path/to/file.png@10:10 ab=128k

Подробнее о параметрах наложения логотипа ниже.

vcodec

vcodec — позволяет задать видео кодек. По умолчанию используется H.264. Flussonic Media Server позволяет кодировать в H.265 (hevc) или mp2v.

Указывается отдельно для каждого видеопотока.

Пример:

vb=2014k vcodec=mp2v ab=128k

fps

fps — задает частоту кадров. Указывается отдельно для каждого видеопотока.

Пример:

vb=2048k fps=25 ab=128k

deinterlace

deinterlace — устраняет чересстрочность. При интенсивной смене кадров в некоторых видеоплеерах могут наблюдаться продольные горизонтальные полосы. Деинтерлейсинг необходим для комфортного просмотра ТВ на ПК/мобильных устройствах. Указывается один раз и действует сразу на все видеопотоки.

Пример:

vb=2000k deinterlace=1 ab=128k

refs

refs — количество референсных кадров. Указывается отдельно для каждого видеопотока.

Пример:

vb=2000k refs=6 ab=128k

bframes

bframes — позволяет отключить b-frames. Это может понадобиться, например, при вещании в RTSP. Указывается один раз и действует сразу на все видеопотоки.

Пример:

vb=2000k bframes=0 ab=128k

hw

hw — включает аппаратное кодирование. Указывается один раз и действует сразу на все видеопотоки.

Пример:

vb=2048k hw=nvenc ab=128k

crop

crop — позволяет обрезать видео. Доступно только при аппаратном транскодировании: hw=nvenc. Указывается отдельно для каждого видеопотока.

Использование: crop=x:y:width:height, где:

  • x:y — координаты левого верхнего угла выходного видео в пределах размеров входного видео,
  • width — ширина выходного видео
  • height — высота выходного видео.

Пример:

vb=2048k hw=nvenc crop=0:0:100:100 ab=128k

aspect

aspect — изменяет соотношение сторон видео. Указывается отдельно для каждого видеопотока.

Важно! В данный момент изменение соотношения сторон не поддерживается для аппаратного кодирования с использованием Intel QuickSync (hw=qsv).

Пример:

vb=2048k hw=nvenc aspect=12:5 ab=128k

force_original_aspect_ratio

force_original_aspect_ratio=true — сохраняет соотношение сторон видео путем добавления черных полос. Опция полезна если вы хотите сохранить разрешение на выходе при переключении между разными источниками.

Пример:

vb=2048k size=1280x720 force_original_aspect_ratio=true

g

g=150 — устанавливает количество кадров в одном GOP. Flussonic транскодирует поток, создавая каждый GOP точно такого размера, как указано в этой настройке.

Пример:

vb=2048k fps=25 size=1280x720 g=150

Чтобы разрешить делать GOP не обязательно строго одного размера, используйте в дополнение к этой опции опцию disable_cgop.

disable_cgop

disable_cgop=1 — разрешает транскодеру разбивать выходной поток на GOP с немного различающимся количеством кадров, но в районе заданного в опции g. Это настройка применима только к транскодированию на процессоре (а не на аппартном транскодере). Иногда это помогает немного уменьшить трафик.

Пример:

vb=2048k fps=25 size=1280x720 g=150 disable_cgop=1

Любые ffmpeg параметры видео

Например, -profile:v high -level 4.1 в конфигурации Flussonic Media Server будет выглядеть так: profile=high level=4.1.

Аудио опции:

ab

ab — задает битрейт аудио. Указывается только один раз (даже если у вас мультибитрейтное видео). Значение должно обязательно заканчиваться на k.

Пример:

vb=2048k ab=128k

acodec

acodec — задает аудио кодек. Доступные значения: ac3, mp2a. По умолчанию, все аудиопотоки пережимаются в AAC.

Пример:

vb=2014k vcodec=mp2v ab=128k acodec=mp2a

ar

ar — задает sample rate, частоту дискретизации. Пример: ar=44100.

Пример:

vb=2014k ab=128k ar=44100

ac

— задает количество аудио-каналов.

Пример:

vb=2014k ab=128k aс=1

Аппаратное ускорение Anchor Anchor x2

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

Flussonic Media Server поддерживает Nvidia NVENC и Intel Quick Sync технологии.

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

Наложение логотипа Anchor Anchor x2

Flussonic Media Server может накладывать логотип на видео:

Транскодер

Пример:

vb=2048k preset=fast logo=/path/to/file.png@10:10 ab=128k

10:10 — это координаты от левого верхнего угла экрана. Для размещения в других частях экрана может понадобиться написать немного более сложную формулу.

Для размещения в центре:

vb=2048k preset=fast logo=/path/to/file.png@(main_w-overlay_w-10)/2:(main_h-overlay_h-10)/2 ab=128k

Для размещения в левом нижнем углу:

vb=2048k preset=fast logo=/path/to/file.png@10:(main_h-overlay_h-10) ab=128k

Для размещения в правом верхнем углу:

vb=2048k preset=fast logo=/path/to/file.png@(main_w-overlay_w-10):10 ab=128k

Для размещения в правом нижнем углу:

vb=2048k preset=fast logo=/path/to/file.png@(main_w-overlay_w-10):(main_h-overlay_h-10) ab=128k

Внимание! Flussonic Media Server может накладывать логотип только с CPU и NVENC энкодерами.

Выбор пресета Anchor Anchor x2

Preset — это набор оптимальных параметров влияющих скорость кодирования и качество. Чем лучше качество тем дольше по времени кодируется файл и наоборот.

Это означает, что лучшего качества при кодировании можно достичь используя slower preset, но кодирование займет больше времени.

Используйте «медленные» пресеты, если для вас важнее качество, а не скорость.

Список значений:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium
  • slow
  • slower
  • veryslow
  • placebo

По умолчанию используется medium.

Пресет placebo не слишком полезен, лучше игнорировать его.