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

  1. Быстрый старт
  2. How-to
  3. Потоковое вещание
    1. Варианты источников
    2. Переключение источников
    3. Публикация на Flussonic
    4. Прием мультикаста
    5. Серверные плейлисты
    6. Микширование
    7. Захват с SDI
    8. Отправка на другие серверы
    9. Распознавание DVB субтитров
    10. Наложение логотипа
  4. Транскодер
    1. Логотип
    2. Hardware
    3. Скриншоты
    4. Мозаика
  5. DRM
    1. Simple CAS
    2. Conax DRM
    3. BuyDRM (KeyOS)
    4. Widevine
    5. PallyCon
    6. EzDRM
  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 Media Server есть встроенный транскодер.

Содержание:

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

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

Важно

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

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

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

Установка транскодера Anchor Anchor x2

Если у вас Flussonic версии 19.04 или ниже, используйте для установки транскодера команду:

apt-get -y install flussonic-ffmpeg

Настройка транскодирования через файл Anchor Anchor x2

Настройки транскодирования задаются для потока.

Вы можете указать их в виде текстовой строки в конфигурационном файле /etc/flussonic/flussonic.conf.

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

Транскодер

  1. Транскодер для входящего потока включается следующим образом:

    stream ort {
      url  udp://239.0.0.1:5000;
      transcoder vb=2048k size=1280x720 preset=fast ab=128k;
    }
    
  2. Для применения настроек не забудьте выполнить

    /etc/init.d/flussonic reload
    

Настройка транскодирования с помощью веб-интерфейса Anchor Anchor x2

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

  1. В меню Media выберите канал, который необходимо транскодировать.
  2. Откройте вкладку Process.
  3. Нажмите кнопку Add video track, чтобы появился диалог настройки параметров видео:

    transcoding options Появятся поля для выбора свойств видео дорожек.

  4. Если вы используете специальные аппаратные средства для ускорения транскодирования, укажите это:

    transcoding options

    • Hardware acceleration — включает аппаратное кодирование. Аппаратное кодирование позволяет транскодировать значительно больше потоков на одном сервере.
    • Deinterlace mode (off|on) — устраняет чересстрочность. Используйте с аппартным кодированием. Для NVIDIA есть дополнительные опции — bob|adaptive|weave. Деинтерлейсинг необходим для комфортного просмотра ТВ на ПК/мобильных устройствах.

    Для Nvidia NVENC доступны дополнительные режимы bob|adaptive|weave.

  5. Чтобы оставить параметры видео, которые были у входного потока, отметьте Copy from origin.

    transcoding options

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

Параметры кодирования видео:

  • Video bitrate — видео-битрейт дорожки.
  • Video width — ширина в пикселах.
  • Video height — высота в пикселах.
  • Video codes (H.264|H.265|MP2V) — видео-кодек.
  • Preset — влияет на качество и скорость доставки. О пресетах см. в Presets на этой странице.

Чтобы получить на выходе видео с теми же характеристиками, что и на входе, отметьте Copy from origin.

Advanced options:

  • Profile (baseline|main|high) — ограничивает выходной поток одним профилем H.264.
  • Level — может использоваться для совместимости с устаревшими устройствами проигрывания.
  • Frames per second — частота кадров.
  • Reference frames — референсные кадры, использующиеся при межкадровой компресси для ссылок на последующие кадры. Лучшее качество видео будет при большем количестве референсных кадров.
  • B-frames — значения 0|1|2|3 соответствуют последовательностям кадров: IP|IBP|IBBP|IBBBP|IBBBBP.
  • Frames in GOP — количество кадров в GOP. Flussonic транскодирует поток, создавая каждый GOP точно такого размера, как указано в этой настройке.
  • Disable CGOP — разрешает транскодеру разбивать выходной поток на GOP с немного различающимся количеством кадров, но в районе заданного в опции Frames in GOP. Эта настройка применима только к транскодированию на процессоре. Иногда это помогает уменьшить трафик.

Logo options:

Укажите путь к файлу с логотипом (сделанному с учетом размера выходного видео) в поле The path to the track's alogo. Для каждого видео трека подготовьте инливидуальный файл с логотипом для предотвращения растягивания логотипа в результирующем видео. Описание alogo

Затем выберите место размещения логотипа на видео.

transcoding options

Audio settings:

  • Audio bitrate — битрейт аудио дорожки.
  • Sample rate (bypass|0|8000|16000|32000|44100|48000)
  • Codec (aac|opus|mp2a) — по умолчанию используется кодек AAC.

Чтобы получить на выходе аудио с теми же характеристиками, что и на входе, отметьте Copy from origin.

transcoding options

Other settings:

Для кодирования с использованием процессора (CPU) отображаются дополнительные настройки:

  • Decoder threads — количество потоков на декодере. Эта настройка применима только к транскодированию на процессоре. Используйте её только после рекомендации от нашей службы поддержки клиентов.

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

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

  • Crop-X и Crop-Y — координаты верхнего левого угла результирующего изображения, относительно исходного (т.е. если (0,0) — это левый верхний угол исходного изображения).
  • Crop-Width — ширина изображения.
  • Crop-Height — высота изображения.

transcoding options

Для Nvidia NVENC также можно удалять дублирующие кадры после устранения чересстрочности:

  • Drop second (field) — удаляет второе поле, получившееся после устранения чересстрочности, предотвращая тем самым повышенный битрейт. По умолчанию выключено (off).

Сохранение настроек

Чтобы отменить значения, которые вы указали, без их сохранения, нажмите Reset and save.

Чтобы сохранить новые значения, нажмите 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 size=1280x720 logo=/path/to/file.png@10:10 ab=128k

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

alogo

alogo — позволяет наложить логотип. Логотип добавляется после изменения размера изображения видео. Это предотвращает растягивание логотипа, которое может произойти при добавлении логотипа при помощи опции logo. Для каждого результирующего разрешения видео нужно подготовить отдельный файл логотипа.

Пример:

vb=2048k size=1280x720 alogo=/path/to/file.png@10:10 ab=128k

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

vcodec

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

Кодек 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

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

Например, -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

Другие опции

immutable=true

immutable=true — предотвращает мигание, которое может возникать при изменении источника потока, особенно если размер изображения из нового источника не такой, как из предыдущего. Подробнее

Пример:

transcoder vb=3000k size=1280x720 ab=copy immutable=true

Аппаратное ускорение 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 — это набор оптимальных параметров, влияющих скорость кодирования и качество. Чем лучше качество, тем дольше по времени кодируется файл и наоборот.

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

Список значений в порядке убывания скорости:

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

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

Плавная смена источника Anchor Anchor x2

Опция "immutable=true" улучшает поток на выходе транскодера. Она предотвращает мигание, которое иногда может возникать при изменении источника потока, особенно если размер изображения у нового источника не такой, как у предыдущего. Например, когда в телеканал врезана реклама с другой шириной и высотой изображения или когда вы транскодируете серверный плейлист, состоящий из разных видео-потоков и файлов.

С помощью этой опции транскодер плавно переключается на другой исходный формат без потери кадров. Это достигается за счет транскодирования с одинаковым размером изображения в результирующем видеопотоке. Все источники будут транскодированы c одним размером, который вы указали в опции size. Если size не указан, то размер будет как у картинки из самого первого источника, который был получен транскодером на вход.

Пример:

stream STREAM_NAME {
  udp://239.0.0.1:5000;
  transcoder vb=3000k size=320x200 ab=copy hw=nvenc immutable=true;
}