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

Аппаратное транскодирование

Кодирование видео (Nvenc) Anchor Anchor x2

Flussonic Media Server умеет кодировать видео, используя GPU на видеокартах NVIDIA. Список поддерживаемых видеокарт можно найти на сайте Nvidia.

Также должен быть установлен драйвер Nvidia версии не ниже 352.

Установка драйвера

Драйвер устанавливается из соответствующего пакета.

Ubuntu 16.04:

apt-get install nvidia-375

Debian 9:

apt-get install nvidia-driver libnvidia-encode1

В sources.list должен быть включен компонент non-free.

Для других системах можно установить драйвер с официального сайта Nvidia. Инструкция по установке драйвера для Debian.

Для работы с большим количеством транскодируемых потоков может потребоваться увеличение лимита на открытые файл. Сделать это можно командой: ulimit -n 4096

Добавьте в файл следующие строки в файл: /etc/security/limits.conf:

* hard nofile 4096
* hard nofile 4096

Включение транскодера

Настройки транскодера можно задать:

  • В конфигурационном файле Flussonic /etc/flussonic/flussonic.conf в опциях потока, используя директиву transcoder с разными опциями.
  • В интерфейсе администратора в Media > выбрать поток > Process > Transcoder. При этом слово transcoder писать не нужно.

Для включения аппаратного кодирования с использованием Nvenc необходимо прописать опцию hw=nvenc:

transcoder vb=2048k hw=nvenc ab=128k

Выбор кодека

По умолчанию используется H.264. Для кодирования на Nvenc вы можете использовать H.265 (HEVC):

transcoder vb=2048k hw=nvenc vcodec=hevc ab=128k

Выбор видеокарты

Если в системе установлено несколько видеокарт, то можно выбрать какую из них использовать для транскодирования. Для этого используется опция deviceid:

transcoder vb=2048k hw=nvenc deviceid=2 ab=128k

Номер видеокарты можно узнать при помощи команды nvidia-smi.

По умолчанию используется первая видеокарта deviceid=0.

Обрезка видео

При использовании Nvenc доступна опция crop, которая позволяет обрезать видео. Указывается отдельно для каждого видеопотока.

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

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

Пример:

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

Декодирование

По умолчанию, декодирование также происходит на GPU. Чтобы использовать для декодирования процессор, вместо hw=nvenc укажите hw=nvenc2:

transcoder vb=2048k hw=nvenc2 ab=128k

Деинтерлейсинг

Деинтерлейсинг (устранение чересстрочности) при использовании nvenc происходит по умолчанию. В случае nvenc2 деинтерлейс включается явным образом параметром deinterlace=yes.

Для отключения дорогостоящего деинтерлейса укажите deinterlace=0.

Прочие параметры, такие как size, preset, bframes, level, используются аналогично CPU транскодеру.

Возможные значения параметра preset: hq, hp, bd, ll, llhq, llhp. По умолчанию — hp.

Кодирование видео (Intel QuickSync) Anchor Anchor x2

Для использования этой технологии на сервере должен быть установлен Intel® Media SDK.

Включается QuickSync с помощью флага hw=qsv:

transcoder vb=2048k hw=qsv ab=128k

Сколько каналов можно транскодировать на одной видеокарте? Anchor Anchor x2

Видеокарты серии GeForce, как правило, имеют ограничение в количестве одновременно кодируемых потоков равных двум. Профессиональные линейки QUADRO и TESLA не имеют подобных ограничений, однако максимальное количество транскодируемых потоков зависит от множества факторов, включая качество входных и выходных потоков (битрейт, разрешение видео, число кадров в секунду и т.д.), а также аппаратные ресурсы самого сервера.

При выборе модели видеокарты используйте сравнительную таблицу nvidia