StreamProcessor

Назначение устройства

NetUP Stream Processor является многофункциональным программно-аппаратным комплексом, предназначенным для решения задач видео-стримминга. Общий функционал можно разделить на несколько частей:

  • Приём множества различных IP-источников: каналы сторонних провайдеров, камеры наблюдения, ВКС, VoD, энкодеры или прочие произвольные потоки, а также загрузка обычных медиа файлов;

  • Высокопроизводительная обработка принятых потоков или файлов: транскодирование, перепаковка, наложение динамической или статичной графики (логотипы, таймеры и т.д.), запись потоков в архив (CatchUP&TimeShift) и защита с помощью связки токенов и AES-шифрования, составление мозаики;

  • Трансляция принятых и обработанных потоков или файлов в самых популярных и востребованных форматах сразу на потребителя (абонентские устройства) или для прочего произвольного оборудования.

Технические характеристики

spec_sp

Быстрый старт

Перед тем как начать работу с NetUP Stream Processor:

1) Подключите Ethernet-кабель к порту №1 на передней панели;

2) Включите устройство в сеть электропитания.

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

Для этого надо:

1) Иметь в этой же локальной сети персональный компьютер или мобильное устройство с веб-браузером;

2) Настроить сетевое подключение на головной станции с помощью LCD-панели;

3) Убедиться, что из данной сети доступны какие-либо источники IP-потоков для взаимодействия.

Войдите в веб-интерфейс и откройте модуль Stream Processor, с помощью которого и осуществляется приём, обработка и вещание IP-потоков. Для быстрой настройки Вам будут полезны следующие статьи:

Первый запуск веб-интерфейса

Откройте браузер и введите в адресную строку IP-адрес, который вы настроили с помощью LCD-панели

Логин и пароль для Web-интерфейса по умолчанию: admin и netup123

В шапке вы можете задать устройству произвольное имя.

После авторизации откроется Домашняя страница, которая отражает состояние основных параметров сервера и переходы в модули, включённые в Вашу лицензию.

mainpage

Рекомендуем сменить пароль сразу после первого подключения. Для этого кликните по имени пользователя (admin) в правой верхней части Домашней страницы и выберите Сменить пароль.

Для базовой конфигурации устройства (прошивка, настройки сети, даты и т.д.) доступен модуль Настройки сервера.

Порт №1 на передней панели устройства соответствует интерфейсу eth0 в веб-интерфейсе, соответственно, №2 – это интерфейс eth1, №3 – eth2, №4 – eth3.

Полезные советы

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

  • Оперативно контролировать результат вы можете создав выходной поток во вкладке Вещание и нажав на иконку быстрого предпросмотра: icon-prev

  • Используйте кнопку Копировать у созданных выходных потоков. Помимо очевидной функции копирования она даёт доступ к списку всех ссылок для данного потока.

fe1

Как принять поток?

1) Откройте веб-интерфейс и зайдите в модуль Stream Processor.

Основу интерфейса составляют три главные вкладки для настройки: приём, обработка, вещание;

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

in0

3) В открывшемся окне необходимо заполнить (все поля обязательны):

  • Alias - название для источника. Никуда не передаётся, действительно только внутри системы Stream Processor для быстрого поиска при настройке;

  • Тип источника - тип потока, который Вы хотите принять;

  • IP-адрес и порт - сюда вписывается адрес вашего произвольного потока.

in1

4) Нажать кнопку Создать.

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

in3

Как изменить видео-аудио кодек?

1) Выполнить приём произвольного IP-потока или загрузить файл-источник.

2) Открыть вкладку Обработка, в правом нижнем углу нажать Начать обработку > Транскодер.

3) В открывшемся окне заполнить параметры транскодирования:

  • Имя узла - название для создаваемой обработки. Никуда не передаётся, действительно только внутри системы Stream Processor для быстрого поиска при настройке;

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

  • Выход - основные настройки обработки для видео, аудио, субтитров.

Более подробно с настройками можно ознакомиться в разделе о транскодировании

trans1

4) Нажимаем Создать, после чего сразу появится строка с созданной обработкой и её параметрами.

trans2

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

Как транслировать поток?

После приёма потоков и проведения с ними каких-либо операций (мозаика, транскодирование, наложение графики и т.д.) необходимо настроить их вещание:

1) Перейти на вкладку Вещание, в левом нижнем углу нажать кнопку Начать вещание и выбрать желаемый формат.

2) В открывшемся окне заполнить необходимые параметры в соответствии с выбранным протоколом. В качестве источника в данный момент вы можете выбрать как исходный поток для обычной ретрансляции, так и какой-либо из обработанных потоков.

3) Нажать кнопку Сохранить, после чего начинается вещание.

trans3

Полученный адрес можно скопировать и попробовать запустить на каком-либо внешнем устройстве, умеющем проигрывать IP-потоки.

LCD-панель

Stream Processor снабжён LCD-панелью и кнопками управления. Вы можете использовать их для первоначальной настройки устройства, просмотра загруженности LAN-интерфейсов и процессора, изменения IP-адреса для сетевых интерфейсов.

Запуск

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

После включения LCD-экран отобразит надпись Starting…​ или Startup…​, в зависимости от модели Вашего устройства. Далее экран отобразит суммарную скорость входящего трафика и суммарную скорость исходящего трафика.

Экраны

Используйте кнопки Up и Down, чтобы перемещаться между экранами:

  • Reboot system – перезагрузить сервер

  • Shutdown system – завершить работу сервера

  • Generate (Reset) password – сгенерировать новый пароль администратора. Используйте кнопку Enter, чтобы выполнить выключение, перезагрузку устройства или сгенерировать новый пароль.

  • IPTV [CPU]v – показать загрузку центрального процессора.

    LCD panel

    Первая цифра слева показывает суммарную загрузку процессора, вторая цифра – какую часть времени процессор проводит в режиме пользователя (u-ser), третья цифра – какую часть времени процессор проводит в режиме ядра (s-ystem), четвертая цифра – какую часть времени процессор проводит в ожидании данных от внешних устройств (w-ait).

  • Network setup – настроить IP-адрес и маску сети. Алгоритм настройки смотрите в следующей статье.

Как настроить IP-адрес и маску сети?

1) Используйте кнопки Up и Down, чтобы перейти к экрану Network setup и нажмите кнопку Enter.

Если Ваше устройство не отображает экран Network setup, находясь на любом из экранов, нажмите кнопку Fn, а затем Enter, чтобы перейти в меню настройки IP-адреса

2) С помощью кнопок Up и Down выберите сетевой интерфейс, который Вы хотите настроить и нажмите Enter.

LCD network

3) Нажимайте Enter, чтобы выбрать нужный октет, а затем Up или Down для его изменения. На выбранный октет будет указывать символ " > ".

4) Выберите последний октет IP-адреса и нажмите Enter, чтобы перейти к редактированию маски сети.

5) Нажимайте Up или Down, чтобы увеличить или уменьшить число битов, отвечающих за адрес подсети, а затем нажмите Enter, чтобы перейти к сохранению настроек.

6) Используйте кнопки Up и Down для переключения между опциями: Save changes – сохранить IP-адрес и маску, Discard – отменить изменения. Выбранное значение будет выделено квадратными скобками. Чтобы подтвердить свой выбор, нажмите Enter.

Общие настройки обработки

Транскодирование

Данная операция предназначена для изменения кодеков видео-аудио и прочих параметров для любых потоков, находящихся внутри устройства.

По-умолчанию рекомендуется использовать режим транскодирования с GPU-ускорением как наиболее производительный. Данный вариант базируется на технологии Intel Quick Sync Video (QSV). Платформы, поставляемые NetUP в комплекте с ПО Stream Processor поддерживают эту технологию.

В случае применения ПО Stream Processor на базе серверов без поддержки QSV допускается применение опции CPU-транскодирования. Эффективность этого метода крайне низкая т.к. CPU не предназначен для таких операций.

Методы транскодирования на CPU и GPU можно использовать одновременно в рамках одного сервера.

Общий принцип создания обработки описан в разделе быстрого старта.

В параметрах видео стоит обратить внимание на опцию Тип обработки:

  • транскодировать (с ускорением на GPU) - рекомендуемый режим обработки. Только в нем доступно наложение текста, графики, изменение кодеков и т.д.;

  • транскодировать (на CPU) - режим обработки на CPU. Наложение графики и текста в этом режиме недоступно;

  • использовать без изменений - не вносить изменения в видео-поток;

  • не использовать - исключить видео из общего выходного потока.

Прочие доступные для изменения параметры:

  • Разрешение: доступны готовые шаблоны или ручная настройка;

  • Частота кадров: готовые шаблоны или как на источнике;

  • Режим битрейта: CQP, CBR, VBR, LA;

  • Битрейт: шаблоны, вручную. Целевой и максимальный;

  • Видеокодек: mpeg2, avc, hevc;

  • Профиль видеокодека: зависит от кодека;

  • Качество: best, balanced, fast;

  • Деинтерлейсинг: off, adi, bob_di.

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

  • Тип обработки: аналогичное видео;

  • Аудиокодек: ac3, aac, mp2, mp3;

  • AAC fast: on\off;

  • Битрейт: шаблоны или вручную;

  • Режим аудио: mono, stereo, stereo_downmox;

  • Частота дискретизации: шаблоны.

Настройки аудио и субтитров позволяют выбрать элементарные потоки как визуально (отметив нужные), так и в расширенном режиме.

Работа с шаблонами

Для настроек транскодирования можно создавать несколько типов шаблонов:

  • Общий шаблон обработки. Он несёт в себе настройки сразу для трёх вкладок: видео, аудио, субтитры;

  • Локальный шаблон обработки. Он находится внутри вкладки видео или аудио, несёт в себе параметры только выбранной вкладки.

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

Для создания локального шаблона действуйте аналогично, но в рамках вкладки видео или аудио.

Все создаваемые шаблоны всегда доступны для применения в любой обработке системы.

Создание вариантов обработки

Вы можете настраивать разные варианты обработки конкретного потока для создания адаптивных потоков или иных целей.

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

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

Выбор элементарных потоков

Stream Processor позволяет создавать особые правила выбора элементарных потоков для аудио и субтитров. Данная функция является более правильной альтернативой варианту выбора потоков с помощью PID’ов, т.к. они могут меняться динамически (например, при врезке), а так же используются только в стандарте MPEG-TS. В нашем случае выбор потоков происходит по любым атрибутам и их сочетаниям.

Чтобы воспользоватьcz функцией, необходимо зайти в настройки обработки интересующего вас потока, затем открыть вкладку аудио или субтитры соответственно.

attsel

Поддерживаемые операторы

  • - меньше или равно

  • >= - больше или равно

  • < - меньше

  • > - больше

  • = - равно

  • != - не равно

  • & - логическое И

  • | - логическое ИЛИ

Для группировки условий поддерживаются скобки ( ). Пробелы вокруг операторов и операндов не имеют значения.

Поддерживаемые аттрибуты

  • index - индекс элементарного потока (номер по порядку, начиная с 0)

  • program - номер программы / DVB-сервиса

  • pid - PID элементарного потока

  • codec - медиа-кодек (примеры для аудио: mp2, aac, ac3)

  • language - 3-х буквенный код языка (ISO 639-2)

Примеры

Выбор первой аудио-дорожки:

 index=0

выбор всех аудио-дорожек с кодеком mp2:

 codec=mp2

выбор всех аудио-дорожек с кодеками mp2 и aac:

  codec=mp2 | codec=aac

выбор всех аудио-дорожек с кодеками mp2 и aac, и у которых язык rus:

 (codec=mp2 | codec=aac) & lang=rus

Работа с субтитрами

Stream Processor позволяет выполнять операцию преобразования субтитров формата dvb-teletext в формат webvtt.

Использовать WebVTT можно только в HLS с адаптивным плейлистом!

Метод настройки:

1) Обеспечить приём потока в котором точно есть субтитры dvb-teletext.

2) Выполнить обработку, если это необходимо. При настройке самой обработки на вкладке субтитры нужно обязательно выбрать дорожки субтитров, которые будут проброшены в результирующий поток. На этом этапе происходит только обработка Аудио и Видео, субтитры просто пробрасываются через узел в исходном виде.

3) Создать выходной HLS-поток в адаптивном варианте.

4) В процессе настройки выходного узла раскройте меню Субтитры в нижней его части:

playlist

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

5) В качестве плейлиста для работы нужно использовать ссылку на адаптивный плейлист даже в том случае, если в составе только один поток.

Плейлисты и вещание из файлов

При наличии соответствующей лицензии модуль Stream Processor позволяет загружать произвольные видео файлы и собирать из них плейлисты. Каждый плейлист вещается отдельным потоком.

Чтобы начать вещание из одного или нескольких файлов нужно:

1) Открыть вкладку Приём, в правом нижнем углу нажать Начать приём.

2) В открывшемся меню выбрать Тип источникаMedia file, а также заполнить поле Имя узла (произвольно).

3) Кликните по надписи Медиа файлы, тем самым раскрыв меню загрузки и настройки.

4) Загрузите необходимые для вещания файлы поочерёдно. Они будут появляться там же в списке Загруженные медиа файлы. Для добавления файла в список воспроизведения кликните по нему и он переместится в Текущий список воспроизведения.

playlist

5) Если файл один, то вы можете нажать кнопку Сохранить. Если файлов несколько, то вы можете выполнить их сортировку с помощью перетаскивания мышью или стрелками. Так же вы можете активировать опцию воспроизводить в цикле.

6) После того, как вы сформировали и сохранили плейлист необходимо настроить его вещание.

Создание мозаики

Данная функция позволяет создавать мозаику из произвольных входных потоков:

1) Зайдите в Обработка, в правом нижнем углу нажмите кнопку Начать обработку > Мозаика.

2) Поле Разрешение определяет данный параметр для конечного выходного мозаики.

Предельное разрешение при ручной настройке зависит от выбранного кодека.

3) Выберете оптимальный размер сетки. Сетка предназначена исключительно для удобного перемещения элементов с помощью мыши. Сами элементы мозаики могут иметь произвольный размер и положение. Точные параметры размера и положения элементов можно точно задать при их добавлении с помощью полей X, Y, ширина, высота.

mos1

4) Выберете необходимый поток, затем разместите его на экране. Добавляйте потоки до тех пор, пока не достигните желаемого результата.

5) Задайте желаемые настройки обработки.

6) Нажмите кнопку Сохранить. С этого момента операция начинает выполняться и можно создать выходной поток.

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

В поток с мозаикой добавляются все звуковые дорожки из составляющих её потоков.

Наложение бегущей строки

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

1) Откройте вкладку Обработка, выполните операцию транскодирования с потоком, на который планируете накладывать бегущую строку.

Наложение возможно только при установке параметра Тип обработки = транскодировать (с ускорением на GPU).

2) В верхней части окна настроек транскодирования доступна кнопка Запустить бегущую строку, нажмите её.

scrtext1

3) Заполните текст и выберите необходимые настройки наложения. Операция будет выполнена сразу же после нажатия кнопки Запустить.

Список опций наложения текста:

  • Количество повторов строки \ повторять бесконечно

  • Задержка между повторами

  • Размер, цвет шрифта, цвет фона

  • Отступы текста (положение на экране)

  • Скорость текста (симв/мин)

Подготовка наложения бегущей строки занимает порядка 5-7 секунд с момента нажатия кнопки Запустить.

Наложение статичной графики

Данная функция позволяет накладывать на любой поток произвольную картинку. Наложение происходит "на лету" без подрывов или артефактов в трансляции. Применение:

1) Откройте вкладку Обработка, выполните операцию транскодирования с потоком, на который планируете накладывать графику.

Наложение возможно только при установке параметра Тип обработки = транскодировать (с ускорением на GPU).

2) После выполнения настройки транскодирования необходимо раскрыть меню Наложение графики, которое находится ниже.

gradd

3) Выберите оптимальный размер сетки. Она предназначена исключительно для более удобного быстрого перемещения объектов по рабочему полю с помощью мыши. Более точно редактировать размер картинки и её положение можно с помощью полей правее её превью при загрузке.

gradd1

4) Выполните загрузку нужного изображения. Допускается использование нескольких изображений.

Поддерживаются все самые популярные форматы векторных и растровых изображений. Рекомендуется: PNG, JPEG, SVG

Операция наложения статичной графики занимает около 5-7 секунд с момента нажатия кнопки Запустить. Зависит от количества графики. Рекомендуется использовать оптимизированную графику.

Не рекомендуется загружать изображения с разрешением превышающим 4К.

5) Разместите изображения, затем нажмите кнопку Сохранить. С этого момента операция наложения начинает работать.

Оперативно контролировать результат вы можете запустив поток из вкладки Вещание в какоим либо плеере или нажав на иконку быстрого предпросмотра: icon-prev

Наложение анимации

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

Советы по подготовке материалов

1) Частота кадров анимации должна быть такой же, как у потока, на который происходит наложение.

2) Стоит стремиться делать минимально-нормальное разрешение для файла с анимацией. От этого напрямую зависит время на подготовку наложения анимации!

При подборе оптимальных материалов наложение анимации с момента нажатия кнопки play составляет примерно 8-10 секунд для HD и SD потоков.

3) Не стоит включать в анимацию какое-либо звуковое сопровождение, так как оно будет проигнорировано.

Как наложить анимацию?

1) Откройте вкладку Обработка, выполните операцию транскодирования с потоком, на который планируете накладывать графику.

Наложение возможно только при установке параметра Тип обработки = транскодировать (с ускорением на GPU).

2) После выполнения настройки транскодирования необходимо раскрыть меню Наложение графики, которое находится ниже.

anim1

3) Выберите оптимальный размер сетки.

4) Нажмите Запустить анимацию, после чего откроется окно выбора материалов.

anim2

5) Выполните загрузку и выбор видеоролика анимации, затем установите нужный размер и его положение.

6) Нажмите кнопку play в правой части экрана. Именно с этого момента начинается предварительная обработка анимации и последующий её запуск.

Настройка приёма потоков

Общий принцип настройки приёма потоков смотрите в разделе Быстрый старт — Как принять поток?

Задержка принимаемых потоков

Для принимаемых потоков доступна функция внесения небольшой задержки. По-умолчанию отключено.

Чтобы использовать функцию, нужно ввести длительность задержки в соответствующее поле при добавлении потока на вкладке приём. Диапазон допустимых значений: 0 — 60 секунд.

Режим приёма URL

Данный режим предназначен для приёма протоколов HTTP-Progressive, SRT, HLS, DASH, RTP, RTSP.

Приём SRT

Приём SRT может осуществляться в трёх разных режимах:

  • Caller.

  • Listener.

  • Rendezvous

Демультиплексирование MPTS

Stream Processor позволяет принимать и демультиплексировать ("разбирать") входящий MPTS-поток на отдельные SPTS.

Выполнение операции происходит следующим образом:

1) Добавить входящий MPTS-поток на вкладке Приём. После добавления в его свойствах отобразится меню Содержимое потока, внутри будет список доступных каналов.

2) Транскодирование. Если задача состоит в том, чтобы получить из MPTS > SPTS - переходите к п.3!. На вкладке Обработка создайте узел и выберите входящий поток с MPTS. После этого вам будет доступен выбор, какой из каналов внутри этого потока будет обрабатывать создаваемый узел транскодирования.

3) Создайте узел во вкладке Вещание. В качестве источника для него можно выбрать либо результат транскодирования чего-либо из состава MPTS, либо узел входа. На этом этапе вы получите SPTS-ссылки в зависимости от выбранного протокола.

Настройка вещания потоков

Вещание HLS и Dash

Рекомендуется для применения при построении OTT-сервисов. Настройка Длительность хранения позволяет подготовить контент для организации услуг CatchUP & PauseTV.

hls-cfg

Потоки HLS и Dash после создания автоматически попадают в менеджер записи потоков.

Адаптивные потоки

Адаптивные потоки доступны только для вещания с помощью протоколов HLS и Dash.

Для создания адаптивного плейлиста необходимо:

1) Создать обработку типа Транскодер с разными вариантами.

2) Создать выходной поток, источником выбрать созданную обработку.

adpt

3) Активировать варианты, которые нужно включить в плейлист и нажать Добавить адаптивное вещание.

4) В открывшемся окне ещё раз подтвердить, какие потоки будут присутствовать в плейлисте, поменять директорию хранения (если нужно). Нажать Сохранить.

5) В листинге выходных потоков нажмите кнопку Скопировать, там можно найти ссылку на созданный плейлист.

Вещание UDP

Multicast-вещание. Оптимальный вариант для локальной сети. При использовании убедитесь, что на вашем сетевом оборудовании корректно настроены функции IGMP Snooping и Query. Данный вид вещания позволяет конфигурировать дополнительную группу параметров, если это необходимо:

UDP-add

Вещание SRT

Отдача SRT может осуществляться только в режиме Caller. Требуется явным образом указать IP-адрес:порт получателя. Сам получатель работает в режиме Listener, т.е. ждёт, когда ему начнут присылать контент.

Вещание HTTP Progressive

Один из видов Unicast-вещания, обладает достаточно низкой задержкой. Для корректной минимальной настройки нужно обязательно заполнить поле Имя. С его помощью генерируется ссылка на вашу трансляцию.

Менеджер записи потоков

Данная функция предназначена для оперативного отслеживания состояния всех записываемых HLS потоков, а также оценки занимаемого ими места и просмотра временных шкал. Для запуска менеджера записи нажмите на соответствующую иконку в левом верхнем углу интерфейса.

rec1

Как только вы создаёте во вкладке Вещание любой HLS-поток (с длительностью хранения = 0 по-умолчанию), он сразу же попадает на экран менеджера записи и классифицируется как не записываемый поток. Если при создании установлена ненулевая длительность хранения, то поток классифицируется как записываемый.

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

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

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

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

Опция применить к существующим записям позволяет задать новое время хранения для всех старых фрагментов потока. Отсчёт времени производится с даты создания конкретного фрагмента.

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

Общие настройки модуля

Выбор языка

В случае, если появилась необходимость сменить язык, это можно сделать двумя способами:

1) Выбрать при авторизации в веб-интерфейс;

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

Резервные копии настроек

Модуль Stream Processor позволяет сохранять настройки узлов. Сюда не входят шаблоны, наложения, общие настройки. Функция доступна из правого верхнего меню настройки.

В случае, если требуется сделать полный бекап системы, то вам нужны Общие настройки сервера. Попасть в них можно с главного экрана веб-интерфейса.

Модуль Настройки сервера

Войдите в веб-интерфейс NetUP.tv и кликните по соответствующей кнопке на Домашней странице, чтобы перейти в модуль и настроить работу сервера.

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

Чтобы скрыть или показать боковое меню, кликните icon-menu
Чтобы вернуться на Домашнюю страницу веб-интерфейса, кликните Домой

Модули

На странице есть две вкладки: Модули и Службы.

Модуль содержит определённый набор функций, которые обеспечивают работу одного из компонентов NetUP.tv, например, dvb-gw отвечает за работу NetUP DVB IP Streamer.
Служба – это утилита, которая отвечает за запуск или остановку модуля.

На вкладке Модули Вы можете:

  1. Установить или обновить модули как по отдельности, так и все вместе.

  2. Деинсталлировать модуль или посмотреть полную информацию о нём.

  3. Загрузить модуль.

Перетащите файлы прямо на страницу и окно загрузки откроется автоматически

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

Прошивка

Перейдите на страницу, чтобы загрузить, установить или удалить прошивку.

Перетащите файлы прямо на страницу и окно загрузки откроется автоматически

Прошивки разных версий системы NetUP.tv могут быть не совместимы между собой.

Если необходимо вернуться к использованию прошивки, относящейся к предыдущим релизам, обратитесь за консультацией в отдел технической поддержки компании НетАП

Обратите внимание, Вы можете загрузить несовместимую прошивку и она появится в общем списке. Предупреждающее сообщение появится только при попытке установить её

Резервные копии

В системе NetUP.tv предусмотрено автоматическое резервное копирование с периодичностью один раз в сутки.

Резервные копии – это архивы с настройками системы в формате tar.bz2.

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

Backup page

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

Чтобы восстановить настройки системы, выберите один из архивов, нажмите icon-update и подтвердите действие в открывшемся окне.

Перед восстановлением настроек из архива убедитесь, что данный архив НЕ был создан в период использования прошивки, относящейся к другому релизу. Номер релиза – это первые две цифры версии прошивки, например, 2.0, 2.2 и т.д.
Подробную информацию об используемых прошивках смотрите в веб-интерфейсе, в модуле Системные настройкиПрошивка

Лицензия

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

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

Перед обновлением лицензии убедитесь, что новая лицензия полностью совместима со старой

Подключения

Перейдите на страницу, чтобы увидеть все системы NetUP.tv. Для каждой из систем отведен отдельный блок, содержащий список служб, с которыми возможно взаимодействие. Адреса взаимодействующих служб являются ссылками.

Разверните один из блоков и кликните по иконке-карандашу напротив службы, адрес которой хотите изменить. В открывшемся окне введите адрес вручную или выберите опцию Auto detect, чтобы определить адрес автоматически, а затем нажмите Сохранить.

Сеть

Перейдите на страницу, если Вы хотите:

Для каждого интерфейса, DNS и тоннеля отведена отдельная панель – разверните её, чтобы перейти к настройкам.

Настроить работу интерфейсов

На панели с настройками интерфейса есть список всех назначенных интерфейсу IP-адресов, а также кнопки для добавления IP-адреса в формате IPv4 и IPv6. Нажмите одну из кнопок, чтобы добавить новый IP-адрес или кликните по добавленному ранее IP-адресу, чтобы изменить его. Впишите или отредактируйте адрес и кликните icon-check, а затем ПРИМЕНИТЬ.

System interface panel

Если адрес не единственный и не является основным, его можно удалить. Для этого рядом с IP-адресом кликните icon-close и внизу панели ПРИМЕНИТЬ.

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

Чтобы удалить настройки интерфейса, нажмите icon-more_vert и выберите соответствующую опцию.

Рядом с названием интерфейса обозначено его состояние: UP – сетевой кабель подключен и интерфейс настроен или DOWN – интерфейс не настроен. Если интерфейс не настроен, нажмите icon-more_vert и создайте для него пустую конфигурацию, чтобы видеть подключен ли кабель к соответствующему интерфейсу стримера.

Создать VLAN, VTUN, bond

Чтобы создать виртуальный интерфейс, нажмите кнопку btn-add внизу страницы, а затем выберите тип интерфейса: VTUN, bond или VLAN. В открывшемся окне заполните необходимые поля и нажмите СОЗДАТЬ.

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

Указать IP-адрес DNS-сервера

По умолчанию стример использует собственный DNS. Если необходимо использовать другой сервер, разверните соответствующую панель, впишите и сохраните IP-адрес стороннего DNS.

Тоннель для доступа техподдержки

Разверните соответствующую панель внизу страницы, включите или отключите тоннель, чтобы предоставить или прекратить доступ техподдержки NetUP и нажмите ПРИМЕНИТЬ.

Маршрутизация

Страница содержит два списка правил маршрутизации: Системные и Пользовательские. Вы можете редактировать, добавлять или удалять пользовательские правила. Системные правила маршрутизации необходимы для корректной работы всей системы, поэтому их нельзя редактировать или удалить.

Пользователи

На странице есть две вкладки: Пользователи и Роли.

На вкладке Пользователи Вы можете:

  1. Добавить нового пользователя.

  2. Удалить пользователя или сменить его пароль.

  3. Назначить пользователю роли, т.е.настроить права доступа для пользователя.

Чтобы создать и настроить роль, перейдите на вкладку Роли.

Время

Откройте страницу, чтобы настроить дату и время для сервера, а также выбрать часовой пояс.

Установите правильный часовой пояс до загрузки лицензии. Изменение часового пояса вступает в силу после перезагрузки сервера

В веб-интерфейсе предусмотрена возможность включить синхронизацию времени с сервером точного времени по Вашему выбору. По умолчанию дата и время синхронизируются с debian.pool.ntp.org

Частые вопросы

В этом разделе Вы найдёте ответы на вопросы, которые чаще всего задают наши клиенты, если что-то пошло не так.

Как предоставить доступ к серверу?

Если Вам необходимо предоставить сотрудникам технической поддержки компании НетАП доступ к Вашему серверу, выполните следующие действия:

  1. Убедитесь, что у Вашего сервера есть доступ в интернет. Сервер может быть подключён к интернету напрямую или через промежуточный сервер.

  2. Выберите один из способов предоставления доступа к Вашему серверу и проделайте необходимые предварительные действия.

    Тоннель (рекомендуемый способ)

    1. Войдите в веб-интерфейс сервера, к которому хотите предоставить доступ, перейдите в модуль Настройки сервера и откройте страницу Сеть.

    2. Разверните панель Техподдержка NetUP, укажите Имя хоста и Порт, и включите тоннель.
      Выбирая порт, убедитесь, что доступ по нему разрешён.
      Если Вы выбрали tuns.netup.tv, убедитесь, что DNS настроен корректно.

    3. Сообщите сотруднику технической поддержки, что Вы включили тоннель и передайте следующие данные:

      • Локальный IP, который появится на панели Техподдержка NetUP после подключения тоннеля;

      • пароль для доступа к серверу;

      • номер Вашей лицензии.

    Публичный IP

    1. Убедитесь, что 22 и 80 TCP порты доступны.

    2. Проверьте надёжность и при необходимости смените пароль для доступа к Вашему серверу.

    3. Сообщите сотруднику технической поддержки:

      • публичный IP-адрес Вашего сервера;

      • пароль для доступа к серверу.

Как и зачем использовать отладочный кабель?

Если Вы не можете подключиться к серверу NetUP по сети, используйте для подключения отладочный кабель, входящий в комплект поставки. Соедините порт на лицевой панели сервера с COM-портом компьютера с помощью отладочного кабеля, и работайте с сервером с помощью программы-терминала. В окне терминала открывается консоль Linux.

Для соединения используйте следующие параметры:

Скорость (бит/с)

19200

Биты данных

8

Чётность

Нет

Стоповые биты

1

Управление потоком

Нет

API GraphQL

API построен на GraphQL, что даёт возможность использовать один URL для всех запросов и получать в ответе только те данные, которые Вы запрашивали.
Данный документ содержит базовое описание API и нектороые примеры взаимодействия с ним.

Как работает Stream Processor?

NetUP Stream Processor предназначен для обработки мультимедийных потоков и состоит из трёх узлов: входа , узла обработки и выхода.

Узлы подключаются друг к другу, соединяются в направленный граф, в котором поток направляется от входа (источника мультимедийных данных) через узел обработки к выходу.

Роль входа – принимать поток (INPUT), роль узла обработки – преобразовывать его (PROCESSING), роль выхода – вещать (OUTPUT).

Один вход может быть источником для нескольких узлов обработки или подключен к нескольким выходам. Один узел обработки может получать потоки из нескольких входов (например, узел типа MOSAIC) или дублировать данные в несколько выходов (например, узел типа TRANSCODER). Таким образом достигается эффективное использование ресурсов.

topology
Тип узла Роль Описание

SIMPLE_INPUT

INPUT

Принимает потоки практически любых форматов (контейнеры, протоколы)

TRANSCODER

PROCESSING

Узел для адаптивного транскодирования видео и аудио. В зависимости от конфигурации может иметь один или много адаптивных вариантов, синхронизированных по ключевым кадрам и DTS (I-frame alignment)

MOSAIC

PROCESSING

Объединяет несколько видео-потоков в одну сетку (мозаику). Аудио-потоки не преобразовывает

SIMPLE_OUTPUT

OUTPUT

Вещает UDP multicast

HLS_OUTPUT

OUTPUT

Вещает HLS (адаптивные потоки). Создаёт медиа- и мастер-плейлисты, нарезает HLS-сегменты

HP_OUTPUT

OUTPUT

Вещает HTTP progressive (MPEG TS по HTTP)

RTMP_OUTPUT

OUTPUT

Узел для публикации RTMP-потоков

Все узлы имеют единый набор параметров:

id

Глобальный идентификатор узла

type

Конкретный тип узла (например, TRANSCODER, HLS_OUTPUT)

alias

Название узла, присвоенное пользователем (любая строка)

role

Роль узла: INPUT, PROCESSING, OUTPUT

state

Состояние узла: STOPPED, STARTING, STARTED, STOPPING

disabled

Узел включён/выключен: true/false

feeds

Источники узла

streams

Элементарные потоки, выходящие из узла

microNodes

Список микроузлов, из которых данный узел состоит (информация для отладки)

statistics

Статистика (битрейты потоков)

error

Значение установлено, если узел завершил работу с ошибкой

Чтобы подключить узел укажите в запросе источник – feed и его параметры: id: number, node: string, select?: string, где id – номер источника (нумерация с нуля), node – идентификатор узла источника, select – правило для выбора программы в случае MPTS, по умолчанию – первая программа в порядке их объявления в PAT.

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

Каждый узел после старта анонсирует свой набор элементарных потоков: видео, аудио, субтитры. В случае с MPEG-TS в одном потоке может быть доступно много программ, в каждой из которых несколько элементарных потоков, таким образом, число элементарных потоков может исчисляться десятками или сотнями.

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

Каждый элементарный поток имеет набор обязательных параметров:

outlet

Номер выхода узла

group

Номер группы (группа элементарных потоков — это программа или адаптивный вариант)

media

Тип медиа (видео, аудио, субтитры и др.)

Кроме того, доступны необязательные параметры: program, program_name, provider, provider_name, pid, codec, codec_profile, bitrate, resolution, language, frame_rate, которые в общем случае могут быть недоступны. Например, program_name и pid — это специфичные параметры MPEG-TS. При работе с другими потоками они не доступны.

С чего начать?

Если Вы уже работали с нашим API или с аналогичными сервисами других платформ, Вы можете пропустить этот раздел.

Используйте Playground для составления и тестирования запросов. На вкладке SCHEMA Вы найдёте список операторов и относящихся к ним параметров, а на вкладке DOCS – их детальное описание.

Обязательные параметры отмечены восклицательным знаком (!)

Запросы к API делятся на три типа:

query

получение данных

аналог в REST – GET, в модели CRUD – Read

mutation

изменение данных

аналог в REST – POST/PUT/PATCH, в модели CRUD – Create/Update/Delete

subscription

подписка на события

Чтобы передать входные данные с запросом, впишите их в QUERY VARIABLES в формате JSON-объекта. Объекты состоят из пар ключ: значение, где ключ является строкой, а значение является допустимым типом данных JSON (строка, число, объект, массив, логический или нулевой).

Ответы на запросы приходят в формате JSON.

Авторизация

Работать с API могут только авторизированные пользователи.

Если Вы используете HTTP Basic Authentication, то каждый запрос должен содержать Ваши логин, пароль и хедер
Content-Type: application/json. Например,

curl http://admin:netup123@10.1.0.190/stream-processor/api/graphql
-H 'Content-Type: application/json'
-d '{"query":"{dot}"}'

POST-запрос для авторизации нужно отправлять на http://<IP-адрес>/system/api/login
Запрос должен содержать:

Параметр Тип Значение

Header

Content-Type

строка

application/json

Body

username

строка

Логин

password

строка

Пароль

Например,

curl -X POST http://10.1.0.190/system/api/login
-H 'Content-Type:application/json'
-d '{"username":"admin","password": "netup123"}'
-D -

В результате успешного выполнения POST-запроса, API вернёт JSON-объект, содержащий логин пользователя и cookies (session и session.sig).

В случае ошибки, ответ API будет содержать JSON-объект с сообщением AUTH_LOGIN_OR_PASSOWRD_INCORRECT

API: Практические примеры

Все примеры – это запросы, составленные в GraphQL Playground (http://<IP-адрес>/stream-processor/api/graphql).
Запросы, с которыми нужно передавать входящие данные, разделены на две части: BODY и QUERY VARIABLES. Ответы приходят в виде JSON-объекта.

Получить список узлов

Впишите в запрос параметры, которые должны быть указаны в ответе для каждого потока, например:

query {
  nodes {
    id
    type
    ...inputParams
    ...hlsOutputParams
  }
}

fragment inputParams on SimpleInputNode {
  id
  type
  alias
  disabled
  inputConfig: config {
    uri
  }
  state
}

fragment hlsOutputParams on HLSOutputNode {
  id
  type
  alias
  disabled
  hlsConfig: config {
    uri
    variants {
    	key_update_period
      encrypt
      storage_duration
      name
      playlist_duration
      target_duration
      pmt_pid
    }
    variant_sets {
      variants
      name
    }
  }
  state
}

В ответ Вы получите список всех имеющихся узлов, которые соответствуют Вашему запросу, например:

{
  "data": {
    "nodes": [
      {
        "id": "qB1BNX3o",
        "type": "TRANSCODER"
      },
      {
        "id": "YNI4sn1H",
        "type": "HLS_OUTPUT",
        "alias": "Россия HD",
        "disabled": false,
        "hlsConfig": {
          "uri": null,
          "variants": [
            {
              "key_update_period": 50,
              "encrypt": false,
              "storage_duration": 0,
              "name": "rossiya-hd_640x350",
              "playlist_duration": 100,
              "target_duration": 10,
              "pmt_pid": null
            },
            {
              "key_update_period": 50,
              "encrypt": false,
              "storage_duration": 0,
              "name": "rossiya-hd_960x540",
              "playlist_duration": 100,
              "target_duration": 10,
              "pmt_pid": null
            },
            {
              "key_update_period": 50,
              "encrypt": false,
              "storage_duration": 0,
              "name": "rossiya-hd_1280x720",
              "playlist_duration": 100,
              "target_duration": 10,
              "pmt_pid": null
            }
          ],
          "variant_sets": [
            {
              "variants": [
                0,
                1,
                2
              ],
              "name": "rossiya-hd"
            }
          ]
        },
        "state": "STARTED"
      },
      {
        "id": "e8MBljU2",
        "type": "SIMPLE_INPUT",
        "alias": "NatGeo HD",
        "disabled": false,
        "inputConfig": {
          "uri": "udp://234.5.2.227:1234"
        },
        "state": "STARTED"
      },
      ...
      {
        "id": "CxJjGNbr",
        "type": "SIMPLE_INPUT",
        "alias": "Test",
        "disabled": true,
        "inputConfig": {
          "uri": "udp://234.5.2.50:1234"
        },
        "state": "STOPPED"
      }
    ]
  }
}

Откройте DOCS ⇒ nodes(…​):[MacroNode!]! ⇒ IMPLEMENTATIONS и выберите тип узла, чтобы увидеть набор доступных ему параметров

Добавить входящий поток

Используйте тип запроса mutation и впишите в QUERY VARIABLES значения параметров потока, например:

mutation createInput(
  $feeds: [InputFeed!]
  $config: InputSimpleInputNodeConfig!
  $alias: String!
) {
  createSimpleInputNode(feeds: $feeds, config: $config, alias: $alias) {
    ...inputParams
  }
}

fragment inputParams on SimpleInputNode {
  id
  type
  alias
  role
  disabled
  config {
    uri
  }
  feeds {
    id
    node
    select
  }
  state
  error {
    what
    params
  }
}


----------------
QUERY VARIABLES:
{"alias": "Channel2", "config": {"uri": "udp://224.119.5.6:1234"}}

Пример ответа сервера:

{
  "data": {
    "createSimpleInputNode": {
      "id": "fde2DYhO",
      "type": "SIMPLE_INPUT",
      "alias": "Channel2",
      "role": "INPUT",
      "disabled": false,
      "config": {
        "uri": "udp://224.119.5.6:1234"
      },
      "feeds": null,
      "state": "STARTING",
      "error": null
    }
  }
}

Добавить узел Transcoder

Используйте тип запроса mutation и впишите в QUERY VARIABLES значения параметров для транскодирования, например:

mutation createTranscoderNode(
  $feeds: [InputFeed!]
  $alias: String!
  $config: InputTranscoderConfig!
) {
  createTranscoderNode(feeds: $feeds, alias: $alias, config: $config) {
    ...processingParams
  }
}

fragment processingParams on TranscoderNode {
  id
  type
  feeds {
    id
    node
  }
  streams {
    media
    program
    program_name
    provider_name
    pid
    codec
    codec_profile
    resolution {
      width
      height
    }
  }
  alias
  disabled
  state
  error {
    what
    params
  }
  config {
    variants {
      video {
        codec
        codec_profile
        bitrate {
          target
          max
        }
        resolution {
          width
          height
        }
        bypass
      }
      audio {
        codec
        bitrate
        channel_layout
        sample_rate
        aac_fast
        fix_wraps
        allowed_pts_diff
        bypass
      }
      subtitles {
        select
        bypass
      }
    }
  }
}


----------------
QUERY VARIABLES:
{
	"feeds": [
		{
			"id": 0,
			"node": "JjA4SOkq"
		}
	],
	"alias": "Transcoder3",
	"config": {
		"variants": {
			"video": {
				"codec": "avc",
				"bypass": false,
				"codec_profile": "main",
				"resolution": {
					"width": 1280,
					"height": 720
				}
			},
			"audio": {
				"aac_fast": true,
				"allowed_pts_diff": 50,
				"bitrate": 128,
				"bypass": false,
				"channel_layout": "stereo",
				"codec": "aac",
				"fix_wraps": true,
				"sample_rate": 48000
			},
			"subtitles": [
				{
					"bypass": true
				}
			]
		}
	}
}

Пример ответа сервера:

{
  "data": {
    "createTranscoderNode": {
      "id": "WI2EHzf4",
      "type": "TRANSCODER",
      "feeds": [
        {
          "id": 0,
          "node": "JjA4SOkq"
        }
      ],
      "streams": [
        {
          "media": "video",
          "program": 2050,
          "program_name": "15 ТВ3",
          "provider_name": "РТРС",
          "pid": 2051,
          "codec": "avc",
          "codec_profile": "main",
          "resolution": {
            "width": 1280,
            "height": 720
          }
        },
        {
          "media": "audio",
          "program": 2050,
          "program_name": null,
          "provider_name": null,
          "pid": 2052,
          "codec": "aac",
          "codec_profile": null,
          "resolution": null
        }
      ],
      "alias": "Transcoder3",
      "disabled": false,
      "state": "STARTED",
      "error": null,
      "config": {
        "variants": [
          {
            "video": {
              "codec": "avc",
              "codec_profile": "main",
              "bitrate": null,
              "resolution": {
                "width": 1280,
                "height": 720
              },
              "bypass": false
            },
            "audio": [
              {
                "codec": "aac",
                "bitrate": 128,
                "channel_layout": "stereo",
                "sample_rate": 48000,
                "aac_fast": true,
                "fix_wraps": true,
                "allowed_pts_diff": 50,
                "bypass": false
              }
            ],
            "subtitles": [
              {
                "select": null,
                "bypass": true
              }
            ]
          }
        ]
      }
    }
  }
}

Добавить узел Mosaic

Используйте тип запроса mutation и впишите в QUERY VARIABLES идентификаторы потоков, которые хотите включить в мозаику, например:

mutation createMosaicNode(
  $feeds: [InputFeed!]
  $alias: String!
  $config: InputMosaicConfig!
) {
  createMosaicNode(feeds: $feeds, alias: $alias, config: $config) {
    id
  }
}


----------------
QUERY VARIABLES:
{
	"alias": "Mosaic",
	"feeds": [
		{
			"id": 0,
			"node": "K0MhX7rL"
		},
		{
			"id": 1,
			"node": "ug_g7Rdd"
		},
		{
			"id": 2,
			"node": "rE-wV9uk"
		},
		{
			"id": 3,
			"node": "JjA4SOkq"
		}
	],
	"config": {
		"in": [
			{
				"left": 960,
				"top": 540,
				"width": 960,
				"height": 540
			},
			{
				"left": 0,
				"top": 540,
				"width": 960,
				"height": 540
			},
			{
				"left": 960,
				"top": 0,
				"width": 960,
				"height": 540
			},
			{
				"left": 0,
				"top": 0,
				"width": 960,
				"height": 540
			}
		],
		"out": {
			"video": {
				"resolution": {
					"width": 1920,
					"height": 1080
				}
			},
			"subtitles": [{}],
			"audio": [{}]
		}
	}
}

Пример ответа сервера:

{
  "data": {
    "createMosaicNode": {
      "id": "RSPPF4TJ"
    }
  }
}

Добавить адаптивный поток (HLS)

Чтобы добавить адаптивный поток, сначала добавьте узел типа Transcoder c вариантами потоков, которые хотите объединить в адаптивный, а затем используйте тип запроса mutation и впишите в QUERY VARIABLES данные нужных Вам потоков, например:

mutation createHLSOutput(
  $alias: String!
  $config: InputHLSOutputNodeConfig!
  $feeds: [InputFeed!]
) {
  createHLSOutputNode(alias: $alias, config: $config, feeds: $feeds) {
    ...outputParams
    ...outputParamsForHLSOutput
  }
}

fragment outputParams on MacroNode {
  id
  type
  role
  disabled
  state
  feeds {
    id
    node
    select
  }
  alias
  error {
    what
    params
  }
}

fragment outputParamsForHLSOutput on HLSOutputNode {
  hlsOutputConfig: config {
    uri
    variants {
      key_update_period
      encrypt
      storage_duration
      name
      bandwidth
      playlist_duration
      target_duration
      pmt_pid
      width
      height
      disabled
    }
    variant_sets {
      variants
      name
    }
  }
}



----------------
QUERY VARIABLES:
{
	"alias": "HLS",
	"config":
		{
			"variants":
				[
					{
						"bandwidth": 0,
						"encrypt": false,
						"key_update_period": 50,
						"name": "15-tv3_720x576_11",
						"playlist_duration": 100,
						"storage_duration": 0,
						"target_duration": 10
					},
					{
						"bandwidth": 0,
						"encrypt": false,
						"key_update_period": 50,
						"name": "15-tv3_1280x720_12",
						"playlist_duration": 100,
						"storage_duration": 0,
						"target_duration": 10
					},
					{
						"bandwidth": 0,
						"encrypt": false,
						"key_update_period": 50,
						"name": "15-tv3_720x576_22",
						"playlist_duration": 100,
						"storage_duration": 0,
						"target_duration": 10
					}
				],
			"variant_sets": []
		},
	"feeds":
		[
			{
				"id": 0,
				"node": "O8spPfLu"
			}
		]
}

Пример ответа сервера:

{
  "data": {
    "createHLSOutputNode": {
      "id": "fDDYkm_N",
      "type": "HLS_OUTPUT",
      "role": "OUTPUT",
      "disabled": false,
      "state": "STARTED",
      "feeds": [
        {
          "id": 0,
          "node": "O8spPfLu",
          "select": null
        }
      ],
      "alias": "HLS2",
      "error": null,
      "hlsOutputConfig": {
        "uri": null,
        "variants": [
          {
            "key_update_period": 50,
            "encrypt": false,
            "storage_duration": 0,
            "name": "15-tv3_720x576_11",
            "bandwidth": 0,
            "playlist_duration": 100,
            "target_duration": 10,
            "pmt_pid": null,
            "width": null,
            "height": null,
            "disabled": null
          },
          {
            "key_update_period": 50,
            "encrypt": false,
            "storage_duration": 0,
            "name": "15-tv3_1280x720_12",
            "bandwidth": 0,
            "playlist_duration": 100,
            "target_duration": 10,
            "pmt_pid": null,
            "width": null,
            "height": null,
            "disabled": null
          },
          {
            "key_update_period": 50,
            "encrypt": false,
            "storage_duration": 0,
            "name": "15-tv3_720x576_22",
            "bandwidth": 0,
            "playlist_duration": 100,
            "target_duration": 10,
            "pmt_pid": null,
            "width": null,
            "height": null,
            "disabled": null
          }
        ],
        "variant_sets": []
      }
    }
  }
}