2. Руководство пользователя¶
Описание Elecard CodecWorks¶
Elecard CodecWorks — это профессиональное решение для кодирования/транскодирования, мультиплексирования мультимедиа данных в режиме реального времени в MPEG-2/AVC/HEVC видео форматы до разрешения 16K, с использованием технологий адаптивного вещания, а также возможностью пакетирования в форматы HLS/MPEG-DASH. CodecWorks функционирует на базе широкого спектра аппаратного обеспечения.
Активация¶
Продукт может быть активирован одним из способов, указанных ниже:
Лицензией под HWkey — с помощью специальной утилиты снимается уникальный идентификатор машины, к которому в последующем будет привязан установочный пакет CodecWorks. Для получения утилиты обратитесь в отдел технической поддержки Elecard или к координатору вашего проекта;
Лицензией под HASP — Elecard высылает HASP-ключ в виде USB-ключа с уникальным номером, к которому уже привязана сборка CodecWorks.
Лицензирование и техническая поддержка¶
Elecard CodecWorks поставляется в виде демонстрационной версии или лицензионного (registered) продукта. Устанавливая, копируя или иным образом используя программный продукт или обновления, Вы принимаете условия Лицензионного соглашения конечного пользователя компании Elecard. Данное Лицензионное соглашение является законным соглашением между Вами (физическим или юридическим лицом) и компанией Elecard на использование программных продуктов марки Elecard, предоставляемых по данному Лицензионному соглашению. Программные продукты марки «Elecard» включают компьютерное программное обеспечение и могут включать «онлайн» или электронную документацию, сопутствующие программы и печатные материалы.
Системные требования¶
При выборе серверов для CodecWorks следует обратить внимание на следующие моменты:
При выборе компьютера для выполнения задач кодирования в реальном времени следует помнить, что производительность процессора может играть важнейшую роль.
На диске, выбранном для установки продукта, должно быть достаточно места для сохранения файлов системного журнала (если предполагается высокий уровень его детализации), а также файлов дампа памяти (на случай аварийного отказа программы).
Для кодирования при помощи аппаратного ускорения QuickSync необходим встроенный графический чип и/или графическая карта Intel Graphics.
Для кодирования при помощи аппаратного ускорения Nvidia необходима графическая карта Nvidia.
Для того чтобы иметь возможность управлять кодирующим сервером по протоколу SNMP, в системе должна быть установлена соответствующая служба.
Требования к системе зависят от ряда факторов:
тип выполняемой задачи (кодирование, транскодирование, мультиплексирование, рестриминг);
формат, разрешение и битрейт входного и выходного потоков;
функции обработки сигнала (изменение размеров кадра, деинтерлейсинг, преобразование частоты кадров и др.);
количество каналов обработки.
Для работы с Elecard CodecWorks система должна удовлетворять следующим минимальным требованиям:
Windows 10/11/ Server 2019(64 bit), Linux Ubuntu 22.04
SSD/HDD от 256 Гб
ОЗУ 16 Гб (обязательно наличие двухканального режима)
Для кодирования с использованием CPU |
Для кодирования с использованием GPU (Intel QuickSync) |
Для кодирования с использованием GPU (Nvidia) |
CPU (Intel from 4 gen, Xeon e7/5/3 v3 и выше, Xeon E/W/D, AMD zen gen и выше) |
CPU (Intel from 5 gen, Xeon e3, Xeon E) |
CPU (Intel from 5 gen, Xeon e3, Xeon E) |
Не обязательно наличие графической карты |
Встроенная или дискретная Intel Graphics |
Nvidia card |
Установка¶
Чтобы установить Elecard CodecWorks, выполните шаги, описанные для вашей операционной системы:
Windows
Запустите инсталлятор и следуйте инструкциям.
ПО будет установлено в
C:\Program Files\Elecard\Elecard CodecWorks
Созданные схемы будут сохраняться в
C:\ProgramData\Elecard\CodecWorks
Ubuntu
Для установки всех [1] пакетов одновременно, запустите установщик:
~sudo apt install ./Elecard-CodecWorks*.deb
/usr/bin/Elecard/CodecWorks
./etc/Elecard/CodecWorks
.Note
Для корректной установки продукта требуется доступ в интернет для скачивания зависимостей.
Server — серверная часть CodecWorks, отвечающая за работу задач, транскодирование/мультиплексирование.
Base — базовая установка для управления CodecWorks, включает в себя консольный менеджер, подходит для написания скриптов.
GUI — графическое приложение для управления.
Web — веб-интерфейс.
Дополнительная установка драйверов¶
Драйверы для Intel QS Ubuntu¶
~sudo apt install libdrm2 libva2 libva-drm2 libigdgmm12 intel-media-va-driver-non-free libmfx1
~sudo usermod -a -G video <user>
~sudo usermod -a -G render <user>
~sudo reboot
Вместо <user> укажите настоящее имя пользователя. Для проверки корректности установки драйвера воспользуйтесь командой:
~vainfo
Драйверы для Nvidia Ubuntu¶
~sudo apt install nvidia-cuda-toolkit
Для проверки корректности установки драйвера воспользуйтесь командой:
~vainfo
Декодирование AC3-аудио¶
~sudo install gstreamer1.0-libav
Удаление¶
Для удаления Elecard CodecWorks с вашего компьютера выполните шаги, описанные для вашей операционной системы:
Windows
Откройте папку
C:\Program Files\Elecard\Elecard CodecWorks
и запустите исполняемый файл Uninstall.exeСледуйте инструкциям на экране, чтобы завершить удаление Elecard CodecWorks.
Ubuntu
Выполните следующую команду:
~sudo apt remove elecard-codecworks*
Функциональные возможности¶
CodecWorks обеспечивает следующую функциональность:
поддержка адаптивного вещания по протоколам HLS/MPEG-DASH;
конфигуратор кодирующих схем;
централизованное управление несколькими кодирующими серверами через GUI и веб-интерфейс;
поддержка аппаратного ускорения на базе Intel и Nvidia GPU для использования возможностей высокоплотного кодирования;
механизм быстрого резервирования серверов 1+1, N+1, N+M;
резервирование входного потока и обеспечение быстрого автоматического переключения на резервный источник в случае отсутствия входных потоков, СС-ошибок, пропадания PID;
отправка уведомлений об ошибках по протоколу SNMP;
включение механизма Генерации Цветных Полос (ГЦП) или заставки пользователя в случаях отсутствия входных потоков, СС-ошибок, пропадания PID;
интеграция с системой условного доступа CAS DRECRYPT для надежной защиты контента от несанкционированного доступа;
возможность наложение логотипа, изменения разрешения видео, изменение частоты кадров, конвертация чересстрочной развертки в прогрессивную, коррекция уровня аудио сигнала.
Описание структуры продукта и назначение модулей¶
В одной операционной системе может быть установлен только один кодирующий сервер, включающий следующие модули:
Кодирующая консоль — программа, выполняющая работу по построению (запуску) кодирующей схемы. Осуществляет прием и обработку управляющих команд от менеджера (через посредника — диспетчер CodecWorks), а также контроль лицензионных ограничений. На один сервер запускается одна и более, в зависимости от закупленных лицензий. Обозначается задачей в веб-интерфейсе.
Диспетчер — программа (по выбору пользователя консоль или системный сервис), выполняющая надзор за работой кодирующих консолей, их первичный запуск, аварийный перезапуск, связь с другими устройствами в сети, получение статистических данных о загрузке сервера. На одном сервере запускается один диспетчер каналов.
Сторожевой сервис (Watcher) — программа (консоль или системный сервис также по выбору пользователя), выполняющая надзор за работой диспетчера, его аварийный перезапуск. Сторожевой сервис, Диспетчер и Кодирующие консоли могут быть запущены либо как системные сервисы, либо как консольные приложения по выбору пользователя.
CodecWorks Manager — программа с графическим пользовательским интерфейсом (GUI), которая управляет работой кодирующих консолей, выполняет настройку и запуск кодирующих схем на основе действий пользователя и собирает статистику. Один менеджер может использоваться для управления несколькими серверами.
CodecWorks Manager (console) — консольное приложение для управления работой кодирующих серверов из командной строки.
Схема кодирования — XML-документ, содержащий полную информацию о структуре кодирующего DirectShow графа или GStreamer пайплайна и его настройках (аналог GRF-файла, используемого программой Graph Edit). Как правило, схему возможно использовать только на конкретном сервере и с определенным входным потоком.
Конфигуратор кодирующих схем — модуль, предназначенный для построения кодирующих схем на основе готового набора секций. Каждая секция — это фрагмент кодирующего графа, описывающий его структуру и значения параметров, предназначенный для выполнения определенной функции (прием потока, декодирование, кодирование и т. п.). Кроме того, для подготовки схем можно использовать шаблоны.
Шаблон — XML-документ, используемый для построения кодирующих схем. Он состоит из ограниченного набора секций, определяющих круг задач кодирования, на которые рассчитан шаблон. Использование шаблонов целесообразно в случаях, когда требуется построение сложных нестандартных кодирующих схем. Подготовка шаблонов выполняется специалистами компании Elecard.
Веб-интерфейс¶
Аутентификация и управление правами пользователей¶
Первая группа Administrators создана по умолчанию и её нельзя удалить. Чтобы добавить новую группу, нажмите кнопку Add Group и введите название группы. Для сохранения изменений нажмите кнопку Apply. При нажатии на группу в правой части страницы открываются ее настройки. Во вкладке Permissions выставляются разрешения на действия со службой CodecWorks и с кодирующими консолями. Во вкладке Users перечислены пользователи, которые состоят в выбранной группе. В этой вкладке вы можете создать пользователей, а также сменить пароль по умолчанию для пользователя Administrator. Для этого выберите пользователя Administrator и нажмите на значок Edit User.
Конфигуратор задач¶
На странице Home нажмите на кнопку , чтобы открыть страницу создания задачи.
Далее добавьте источник (Source) и выберите входной протокол. Заполните обязательные поля Multicast address/port и нажмите кнопку Apply. Тип входного потока IP (demux) подразумевает под собой протоколы UDP/RTP/SRT/RIST с последующим демультиплексированием для дальнейшей обработки потока.
После указания данных CodecWorks попытается принять указанный поток и выведет в окне доступные элементарные потоки. На этом этапе можно исключить некоторые программы из потока, если это необходимо. Далее перейдите в создавшийся элемент Transform и выберите из заранее подготовленных шаблонов действие, которое необходимо произвести с потоками. После этого выберите протокол вещания. Перейдите в элемент Output и заполните необходимые поля для вещания. Можно изменить имя схемы и сохранить. Задача создана и появилась в списке неактивных, теперь нужно перевести задачу в активный статус.
Note
Для подготовки мультибитрейтных задач, необходимо добавить в установочный пакет шаблоны для многопрофильных задач. Можно обратиться в техническую поддержку для добавления нужных шаблонов под конкретную задачу.
Для создания задачи с резервным источником, до сохранения задачи добавьте второй источник с типом IP(reserving). Заполните необходимые поля для резервного источника и СodecWorks сделает этот источник резервным.
Управление задачей¶
После создания задача появится в списке Inactive Tasks. При наведении курсора на задачу появятся возможные быстрые варианты действий, такие как Запустить/Остановить/Перезапустить задачу. Чтобы удалить неактуальные задачи, отметьте их и нажмите на кнопку Delete. Таким же образом можно включить/выключить ручной режим ГЦП или разрешить/отменить автоматическое включение ГЦП. При клике на имя задачи откроется страница со статистикой и параметрами этой задачи. На этой странице дополнительно можно посмотреть журнал событий с конкретной задачей, а также перестроить процесс кодирования в случае изменения входного потока, нажав кнопку Rebuild.
Настройки сервера¶
На странице Service settings во вкладке General можно изменить Имя службы, IP-адрес мультикаст рассылки для поиска служб CodecWorks в сети, IP-адрес сетевого интерфейса используемого для этого, а также IP-адрес веб-интерфейса. Параметр Service start delay (s) указывает время задержки перед запуском службы CodecWorks.
Note
Если в качестве адреса сетевого интерфейса задать 0.0.0.0
, то будут использоваться все доступные сетевые интерфейсы системы.
Настройки резервирования сервисов¶
На странице Service settings во вкладке Source Redundancy можно изменить настройки условий, при которых произойдет переход на резервный источник. Переход на резервный источник происходит при срабатывании одного из установленных триггеров:
CC ошибки — при детектировании 15 и более ошибок ежесекундно в течение 5 секунд. Выход из состояния выполняется, если в течение 10 секунд не было обнаружено ошибок.
Нет видео/ нет звука — подразумевает состояния PID Loss/PMT changed и отсутствие данных по видео и аудио в течение 3 секунд. Выход из состояния при наличии видео в течение 3 секунд, аудио в течение 2 секунд.
При срабатывании триггера на единственном источнике автоматически включится механизм ГЦП, если он разрешен в задаче.
Опция Переключение на основной источник разрешает обратное переключение с резервного источника на основной, когда он будет восстановлен. Если этот параметр выключен, резервный источник считается равноценным основному и переход между источниками происходит только в случае проблем с рабочим потоком.
Настройки логирования и ротации¶
Окно настроек логирования и ротации подразделяется на две вкладки. Во вкладке Логирование указывается директория, в которой следует хранить файлы логов, а также настраиваются уровни логирования для событий диспетчера, SNMP и консолей. При настройке консолей можно установить один уровень логирования для всех консолей или установить уровень логирования для определенной консоли.
Во вкладке Ротация можно задать период и объем хранения файлов, таких как:
Файлы логов — записи служебной информации в журнал.
Аварийные дампы — дампы процессов при различных ситуациях, вызванных некорректной работой.
Резервные копии схем — схемы, сохраненные как резервные в папке консоли
/backup
после каждого изменения настроек схемы для того, чтобы можно было вернуть изменения.
А также задать период ротации файлов с момента запуска диспетчера. При ротации выполняется проверка логов на соответствие файлов заданным порогам периода хранения логов и размера файлов. При обнаружении файлов, не соответствующих заданным порогам, они будут удалены.
SNMP¶
Настройка SNMP-агента¶
Установите службу SNMP:
~sudo apt-get install snmpd
Пропишите сообщество и путь к агенту CodecWorks в файл etc/snmp/snmpd.conf:
rwcommunity elecard rocommunity elecard
В конец файла укажите путь к агенту:
dlmod libcwSnmpAgent /bin/Elecard/CodecWorks/libcwSnmpAgent.so
Перезапустите службу SNMP:
sudo systemctl restart snmpd.service
Настройка SNMP-оповещений¶
В CodecWorks предусмотрена возможность отправки SNMP-оповещений в необходимый пункт ловушки.
В установленной версии CodecWorks входят два MIB файла:
Для настройки SNMP-оповещений перейдите в Settings ➝ SNMP Settings.
Кнопка Add community под колонкой Сообщества позволит внести имя вашего сообщества SNMP.
Кнопка Add host под колонкой Host позволит внести адреса назначения, куда будут отправляться trap-оповещения для выбранного сообщества. При необходимости использования нескольких адресов повторите добавление адресов назначения.
Trap-уведомления бывают двух видов:
События — оповещения такого типа приходят однажды. В основном такие оповещения связаны с фактом изменения состояния. Например, при переходе на резерв.
Состояния — оповещения такого типа передают начало и конец события. Состояние передается в поле Status, которое может иметь значение active/cleared. Сообщения отправляются дважды: при входе в событие по определённым триггерам и при выходе из события.
С помощью Trap-уведомлений CodecWorks может сообщить, например, о проблемах со входным потоком, о начале/остановке работы транскодирующей схемы, о переключении на резервный источник сигнала и т. д. Во вкладке Уровни критичности можно настроить состояния консоли и события потока, которые должны отслеживаться. Включить или выключить отслеживание того или иного события можно путем выбора соответствующего состояния в столбце Status. В столбцах Active/Cleared Level задается уровень критичности, который будет присвоен состоянию или событию при его регистрации и снятии.
Структура SNMP оповещений¶
Существует четыре разновидности SNMP trap-оповещений, описанных в ELECARD-CODECWORKS-MIB.mib
файле.
1. Оповещение о смене состояния службы CodecWorks (codecWorksState)
Такие оповещения характеризуют определенное состояние службы и отправляются дважды: при наступлении некоторого события и при его завершении. Оповещение содержит следующие поля:
status — состояние события (active — если событие наступило, cleared — если событие завершилось);
trapName — название оповещения;
trapMessage — подробное описание оповещения;
severityLevel — уровень важности оповещения;
referenceNumber — порядковый номер оповещения;
sequenceId — параметр, связывающий начало и конец состояния (идентификатор состояния, уникальный для пары оповещений).
2. Оповещение о событии, произошедшем со службой CodecWorks (codecWorksEvent)
Такие оповещения характеризуют наступление некоторого события, и отправляются единожды при наступлении события. Оповещение содержит следующие поля:
trapName — название оповещения;
trapMessage — подробное описания оповещения;
severityLevel — уровень важности оповещения;
referenceNumber — порядковый номер оповещения.
3. Оповещение о смене состояния кодирующих консолей CodecWorks (codecWorksChannelState)
Такие оповещения характеризуют определенное состояние кодирующей консоли и отправляются дважды: при наступлении некоторого события и при его завершении. Оповещение содержит следующие поля:
status — состояние события (active — если событие наступило, cleared — если событие завершилось);
trapName — название оповещения;
trapMessage — подробное описания оповещения;
severityLevel — уровень важности оповещения;
channelNumber — номер кодирующей консоли;
taskName — название кодирующей схемы;
referenceNumber — порядковый номер оповещения;
sequenceId — параметр, связывающий начало и конец состояния (идентификатор состояния, уникальный для пары оповещений).
4. Оповещение о событии, произошедшем с кодирующей консолью (codecWorksChannelEvent)
Такие оповещения характеризуют наступление некоторого события, и отправляются единожды при наступлении события. Оповещение содержит следующие поля:
trapName — название оповещения;
trapMessage — подробное описания оповещения;
severityLevel — уровень важности оповещения;
channelNumber — номер кодирующей консоли;
taskName — название кодирующей схемы;
referenceNumber — порядковый номер оповещения.
Возможные значения некоторых полей оповещений. Поле severityLevel может принимать значения:
ok (1);
warning (2);
error (3);
major (4);
fatal (5).
Значения полей trapName и trapMessage представлены в таблице ниже.
trapName |
trapMessage |
Описание |
---|---|---|
Backup server |
Host <host:port> is down, backup started |
Включение резервного сервера |
Service start |
Service started |
Включение сервиса |
Service stop |
Service stopped. <reason> |
Выключение сервиса |
Console stop |
<reason> |
Остановка кодирующей консоли |
Channel error |
<reason> |
Ошибка во время транскодирования |
Stream switch |
Stream switch |
Переключение на другой источник |
Channel start player error |
<reason> |
Ошибка при запуске кодирования |
Channel start error |
<reason> |
Ошибка при запуске кодирующей консоли |
Transcoding stop |
Transcoding stopped |
Остановка транскодирования |
Transcoding start |
Transcoding started |
Запуск транскодирования |
No video signal |
Stream <stream number> - no video |
Отсутствие видеосигнала |
No video decoded |
Stream <stream number> - no decoded video frames |
Невозможность декодировать видеопоток |
No audio signal |
Stream <stream number> - no audio |
Отсутствие аудиосигнала |
No audio decoded |
Stream <stream number> - no decoded audio frames |
Невозможность декодировать аудиопоток |
No input |
Stream <stream number> - no input |
Отсутствие входного потока |
No output |
Stream <stream number> - no output on HLS Stream
Stream <stream number> - no output on DASH
|
Ошибка HTTP протокола при попытке отправки сегмента |
TS errors |
Stream <stream number> - CC errors |
Ошибки в транспортном потоке |
Color bar |
Stream <stream number> track <track number> - generating color bar
Stream <stream number> track <track number> - generating silence
|
Включение генератора цветных полос по видео или тишины по аудиопотокам |
Настройка Пороговых значений¶
К задачам (кодирующим консолям) можно применить свою конфигурацию пороговых значений, при превышении которых необходимо принять меры. По умолчанию используется конфигурация Common.
Условия автоматического перезапуска консолей:
По времени — перезагружать каждые N минут, консоль будет перезагружаться через заданный интервал времени.
По использованному процессорному времени — консоль может быть перезагружена, если нагрузка на процессор упала и держится на протяжении заданного интервала времени.
По превышению используемой ОЗУ — консоль будет перезагружена, если использование ОЗУ будет больше, чем указано в настройке в течение интервала 5 секунд.
Сохранять статистику каждые N секунд — в лог консоли дополнительно будет записываться статистика задачи каждый указанный интервал времени.
Уровень логирования консолей — уровни являются куммулятивными, таким образом, нижний уровень trace
включает в себя все предыдущие уровни логирования. Рекомендуется использовать уровень info
, установленный по умолчанию.
Настройка резервирования серверов¶
В процессе работы резервный сервер следит за работой основного сервера методом периодической отправки ему специальных сигналов и контроля получения ответов. При отсутствии ответов от основного сервера в течение настраиваемого периода времени резервный сервер запускает заранее настроенные, подконтрольные ему каналы кодирования. Один резервный сервер может дублировать несколько рабочих кодирующих серверов (модель N+1). Несколько резервных серверов может обслуживать одно и то же множество рабочих серверов (модель N+M).
На странице Home нажмите кнопку Redundancy, чтобы открыть страницу резервирования. На странице отображается два столбца:
Main Servers — основные сервера, которых будут отслеживать резервные.
Redundancy Servers — резервные сервера, которые в случае проблем с основным серверов, войдут в работу.
По нажатии кнопки Add можно добавить сервер или несколько серверов в список. После формирования списков нажмите кнопку Save and Exit. Резервирование серверов будет настроено.
Note
По умолчанию сервер, на котором настраивают резервирование, автоматически попадает в список резервных.
Резервный сервер запустится в случае, если связь с рабочим сервером CodecWorks будет потеряна, т. е. диспетчер резервного сервера перестанет получать отклик от диспетчера рабочего сервера.
Для ручного переключения на резервный сервер, после сохранения настроек зайдите на страницу резервирования. выберите из списка основных серверов который хотите вывести из работу, затем выберите резервный сервер, который необходимо ввести в работу и нажмите на кнопку перемещения.
Нажав кнопку Settings на странице Redundancy, откроется окно Redundancy Settings, где можно настроить обновление схем на резервных серверах, тайм-аут при переключении на резерв и триггеры, по которым произойдет переключение.
Автоматическое обновление схем на резервных серверах производится с указанным промежутком времени при активации опции Обновление схем на резервных серверах по времени. Схемы могут обновляться через указанный интервал после запуска службы или начиная с установленного пользователем времени.
Количество неудачных попыток пинга — это количество последовательных неудачных запросов внутри TCP-сессии. При достижении заданного количества неудачных запросов подряд приведет к запуску резервного сервера.
Тайм-аут пинга (миллисекунды) — время между запросами внутри TCP-сессии.
Время переключения (миллисекунды) — расчетный параметр, определяющий время детектирования проблем с основным сервером и переключения на резерв.
Настройка условий для выключения сервера — функциональность, необходимая для управления сервером в случае срабатывания триггеров по заданным условиям. К таким условиям относятся:
Отсутствие входных потоков — если включен данный параметр, сервер будет выключен при отсутствии входящих потоков на все работающие консоли.
Невозможность отправки сегментов по WebDAV — при включении данного параметра сервер будет выключен, если все работающие консоли не смогут отправить ОТТ сегменты по WebDAV на сервер origin.
Использование ЦП — при включении данного параметра сервер будет выключен при превышении заданного порога максимальной загрузки ЦП в течение заданного времени.
Настройка Действие при выполнении условий позволяет настроить поведение сервера. Так, при обнаружении выбранного условия, сервер может быть выключен или начнет использоваться в качестве резервного или может быть помечен как резервный.
Note
Назначить автоматически сервер в качестве резервного можно только для метода резервирования 1+1.