Пользовательская документация¶
Планирование и протоколы передачи данных¶
Программа Perfect Streamer предназначена для передачи потоков формата MPEG-TS через публичную сеть Интернет с потерями пакетов и задержками на базе UDP.
Для каждого MPEG-TS потока (Stream) настраивается сервер перередатчик (Sender) и один или несколько приемников (Receiver), далее связка обозначается Peer.
Настройка передатчика и приемника сводится к вводу списка потоков (Stream) и настройки для каждого Stream списка input и output. Несколько input в списке обеспечивают резервирование источников. Несколько output в списке позволяют передавать потоки сразу по разным получателям.
Для передатчика input - это источники MPEG-TS потоков, output - передача потоков на приемники. Для приемников input - получение потоков от передатчиков. Доступны четыре Peer протокола для передачи потоков между передатчиком и приемником:
Протокол Perfect Stream (PS1).
SRT.
Pro-MPEG.
RIST.
Протокол PS1¶
Протокол PS1 работает по принципу Automatic Repeat reQuest (ARQ). Имеет низкую ресурсоемкость и позволяет передавать потоки с высоким битрейтом.
На передатчике - настраивается в output. Для одного стрима доступен только один экземпляр. Требуется прописать в Peer логины для приемников. Задается UDP listen port, должен быть уникальный для каждого стрима.
На приемнике - настраивается в input. Указывается host и port передатчика, также логин и пароль.
Доступно шифрование потоков (Crypto protection), используется AES-128. Для включения шифрования на обеих сторонах ввести Crypt Passphrase - общий ключ.
При работе приемник (клиент) передает передатчику (серверу) свои данные статистики. Это можно посмотреть в разделе Peers, выбрав клиента из списка.
Задержка потока и способность исправлять потери зависит от настроек получателя (клиента):
Round Trip Time - RTT, ms, default 300. Оценочная задерка (ping) в канале. После запуска потока реальный RTT можно увидеть в статистике (PS1 recovery delay).
Client Latency (RTT multiplexor) - множитель к RTT, по умолчанию 10, определяющий задержку потока на буфере отправителя. Т.е. по умолчанию задержка на буфере 3000 мс.
Со стороны отправителя есть настройка задержки (длины буфера) - Latency (ms). Она должна быть больше заданных у клиентов задержек.
Способность протокола компенсировать потери определяется количеством запросов на повторную передачу и зависит от Client Latency (RTT multiplexor). Большие потери приводят к дополнительному сетевому трафику. Для уменьшения задержки следует более тонко настроить эти параметры.
Корректность работы протокола см. статистику клиента. Счетчики PS1 recovery - при Not found увеличить буфер отправителя, Dublicates - увеличить RTT.
Так как инициирование соединения происходит со стороны приемника, то для передатчика требуется аутентификация, приемники прописываются в peer. Обязателен логин и пароль. Возможна авторизация по IP сервера, для этого у пира необходимо указать только IP приёмника.
Протокол SRT¶
Открытый протокол разработки Haivision. Базируется на протоколе UDT. Имеет широкое распространение и хорошие характеристики компенсации потерь пакетов данных.
Сценарии использования:
Peer между pstreamer. На передатчике - настраивается в output, режим listen (по умолчанию). Для одного stream можно задать только один такой output. В этом режиме можно подключить несколько приемников. Для авторизации требуется прописать в Peer логины для приемников. На приемнике - настраивается в input. Указывается host и port передатчика, также логин и пароль. Для передачи логина и пароля в srt streamer использует streamid в формате «login|password»
Peer между pstreamer и любыми сторонними srt стримерами. На передатчике можно настроить режим srt client, отключив listen, srt streamid, если надо, вводится в поле login. Для режима listen доступна авторизация по IP адресу - вводится в поле login Peer. На приемнике можно включить режим listen, в поле login задать srt streamid, а также можно задать хост, с которого разрешается прием.
Работа в режиме Listener: получение и передача потока телеканала в с указанием порта приёма.
Порты для listen режима должны быть уникальны.
Доступно шифрование потоков (Crypto protection), используется AES-128. Для включения шифрования на обеих сторонах ввести Crypt Passphrase - общий ключ.
Опции протокола SRT соответствуют описанию - https://github.com/Haivision/srt/blob/master/docs/API/API-socket-options.md
Если на передатчике используется режим listen (по умолчанию), то инициирование соединения происходит со стороны приемника, и для передатчика требуется аутентификация, приемники прописываются в peer. Обязателен логин и пароль.
Протокол Pro-MPEG¶
Pro-MPEG COP3 описан в стандарте IEEE (https://ieeexplore.ieee.org/document/6738329) и поддерживается рядом оборудования. Достоинства - низкая задержка. Его недостаток высокий дополнительный трафик (overhead), и он плохо работает при больших потерях пакетов (более 0.2%).
Этот протокол основан на RTP с добавлением 2-х каналов для FEC (кода коррекции ощибок). Два канала FEC используют порты port+2 и port+4, что надо учитывать при добавлении нескольких потоков на один хост или мультикаст группу.
На отправителе поток RTP пакетов группируется в матрицу с Cols колонок и Rows строк. Пример для cols=8 и row=4 (по умолчанию):
RTP01 |
RTP02 |
RTP03 |
RTP04 |
RTP05 |
RTP06 |
RTP07 |
RTP08 |
R1 |
RTP11 |
RTP12 |
RTP13 |
RTP14 |
RTP15 |
RTP16 |
RTP17 |
RTP18 |
R2 |
RTP21 |
RTP22 |
RTP23 |
RTP24 |
RTP25 |
RTP26 |
RTP27 |
RTP28 |
R3 |
RTP31 |
RTP32 |
RTP33 |
RTP34 |
RTP35 |
RTP36 |
RTP37 |
RTP38 |
R4 |
C1 |
C2 |
C3 |
C4 |
C5 |
C6 |
C7 |
C8 |
Пакеты Rx и Cx формируют данные для FEC по строкам и колонкам. Чем меньше размер матрицы, тем лучше способность исправлять потери, но больше дополнительный трафик. В данном примере на 32 RTP пакета потока приходится 12 FEC пакетов.
Доступно шифрование потоков (Crypto protection), используется AES-128, но это не включено в стандарт, поэтому не гарантируется совместимость со стронним ПО или оборудованием.
Имеются нестандартные расширения протокола:
Multiplexing - мультиплескирование RTP каналов через один UDP порт. Может упростить настройку сети. Header XOR - обфускация RTP заголовка. Усложнит определение типа трафика в сети.
Протокол RIST¶
Новый открытый протокол. Базируется на протоколе RTP/RTCP. Работает по принципу Automatic Repeat reQuest (ARQ) без ACK, только NACK, что обеспечивает высокую эффективность.
Использует unicast и multicast.
Реализованы профили Simple и Main. Simple использует 2 udp порта подряд, задаваемый порт должен быть четным. Main использует только один RTP порт с мультиплексированием данных.
На передатчике - настраивается в output. Для unicast настраивается адрес и порт приемника. Для multicast требуется задать сетевой интерфейс, через который будет передача данных. Также для multicast можно задать авторизацию приемников через IP адрес если прописать логины в Peer.
На приемнике - настраивается в input. Для unicast настраивается порт приемника (listen) и обязательно сетевой интерфейс. Для multicast задается только мультикаст группа и порт.
RIST поддерживает несколько отдельных пиров (адресов). Можно задать вес (более 1), тогда включится режим балансировки нагрузки по пирам в зависимости от веса.
Если передатчик использует multicast, то приемников может быть много. В этом случае возможна аутентификация приемников по IP адресу. Для этого в настройках передатчика включите аутентификацию (по умолчанию отключена) и в список peer добавьте клиента, в поле логина пропишите IP адрес.
Другие протоколы¶
Кроме peer протоколов для получения и передачи потоков доступны другие:
Protocol |
Input |
Output |
---|---|---|
UDP |
Yes |
Yes |
RTP |
Yes |
Yes |
TCP |
Yes |
No |
HLS |
Yes |
Yes |
UDP (Unicast или Multicast) - прием и передача MРEG-TS в UDP пакете, до 7-ми TS пакетов на один UDP пакет.
RTP (Unicast или Multicast) - стандартный RFC-based протокол. Поддерживается восстановление reordered пакетов.
TCP - прием MРEG-TS в TCP соединении, режим TCP клиент.
HLS - прием и передача MРEG-TS over http или стандартный HLS протокол от Apple. На приёме для адаптивного плейлиста выбирается поток с большим битрейтом.
Подключение сторонних приложений¶
Для поддержки других протоколов, которые не поддерживаются встроенными средствами, имеется возможность получения и передачи потока через сторонние консольные приложения. Для этого для input и output имеется отдельный протокол std. Поток MPEG-TS принимается и передается через поток ввода/вывода операционной системы.
В настройке указывается консольное приложение (путь абсолютный), командная строка. Также можно задать переменные окружения.
Для input при настройке внешнего приложения надо исключить появление сообщений в стандартном выводе, только в stderr.
Для output можно задать пакетирование до 7-ми MPEG-TS пакетов.
Требования к входному потоку¶
Соответствие iso13818-1, Single Program (SPTS) или Multi Program Transport Stream (MPTS). Особенности MPTS описаны ниже, далее настройки указаны для Single Program.
Требуется хотя бы одна звуковая дорожка.
Поддерживаются потоки без видео, включается режимом Radio.
Поддерживаются закодированные потоки, для них надо включить Scrambled Stream.
Для синхронизации в потоке должны быть валидные PCR отметки. Имеется возможность использовать для синхронизации PTS/DTS, но это не рекомендуется.
Настройки Stream¶
Задать уникальное имя стрима. Использовать латиницу, цифры, знаки «_», «-». Дополнительно можно задать отображаемое имя потока, поддерживается русский и другие языки.
Stream Timeout - общий таймаут стрима. Если в течение этого времени нет валидного входного потока, то производится полный рестарт.
Pause - перевод stream, а также всех input и output в неактивное состояние. По умолчанию при добавлении нового stream, а также input и output они будут в паузе и неактивны.
PCR Fix - коррекция PCR-меток в видеопотоке, особенно актуально при приёме некачественных видеопотоков HLS.
В программе производится проверка входного потока с input на его валидность. Если поток проверку не прошел, то input считается аварийным.
Check Interval - Интервал повторной проверки потока.
Настройки фильтрации MPEG-TS:
Remove All Unnecessary Data - Удаление всех ненужных данных.
Remove SDT - Удаление SDT даннных (имя канала, провайдер и др).
Remove EIT/EPG - Удаление EPG данных.
Remove Teletext - Удаление телетекста.
Remove Subtitles - Удаление субтитров.
Резервирование источников¶
Может быть задано списком несколько input, но активен только один. Если input встал на аварию, то делается попытка использвать следующий по списку, и так по кругу.
Если у stream включить Fallback Check, то при работе резервного input (не первого в списке) будет производиться перепроверка выше по списку с интервалом Check Interval. Если при перепроверке поток валидный, то stream переключается на него.
Так как порядок input имеет значение, то его можно менять. Если input поставить в паузу, то он при работе учитываться не будет.
Фильтрация и модификация MPEG-TS¶
По умолчанию MPEG-TS поток передается как есть.
Для каждого input доступны следующие опции фильтрации MPEG-TS потока:
PID Accept - список разрешенных pid. Если пустой, то разрешено все, кроме PID Reject.
PID Reject - список запрещенных pid. Имеет приоритет над PID Accept.
Имеется возможность поменять pid. Для этого вводятся списки PID Old и PID New.
Mapping PIDs and Languages - переназначение языка звуковых дорожек.
Default Language - назначить язык по умолчанию, если для звуковой дорожки нет языка.
Для stream можно назначить новые MPEG-TS данные (SDT table):
MPEG-TS Network ID
Service Name
Provider Name
Language
MPTS потоки¶
MPTS поток - MPRG-TS поток с несколькими потоками (сервисами), каждый сервис имеет унникальный номер (PNR). Используется для DVB вещания.
Для MPTS потоков опции фильтрации недоступны. Потоки передаются как есть.
Максимальный битрейт 64000kbps.
Функция мозаики по умолчанию отключена. Не рекомендуется ее включать на слабых CPU, это может добавить джиттер.
В диагностике потока отображаются данные по всем программам отдельно, а также суммарная статистика.
Демультиплексор¶
Выделяет из MTPS потока отдельные потоки. Для этого в SPTS стриме добавить input типа demux, выбрать источник и сервис по PNR. Если исходный MPTS активен, то при выборе PNR будет доступен список, иначе надо задать PNR вручную.
Мультиплексор¶
Собирает MPTS поток из отдельных потоков SPTS. Для настройки такого потока:
Создать MPTS stream.
Добавить input типа muxer. Можно ввести некоторые параметры MPEG-TS потока, для большинства применений подойдут параметры по умолчанию.
В Stream источника добавить output типа muxer. Ввести имя сервиса и, если надо, имя провайдера. Если используется не латиница, то в настройках MPEG-TS стрима выбрать язык.
Повторить для всех источников.
Мультиплексор генерирует для потока SDT, NIT и TDT/TOT (метки времени). EIT (EPG) берется из потоков источников. PID назначаются новые.
OTT сервис¶
Выдает потоки по протоколам на базе http - hls и mpegts over http. Поддерживается https (ssl). Выдача включается на вкладке OTT настроек Stream.
Url для подключения имеют формат:
http://host:port/http/stream/login/password - авторизация по login и password http://host:port/http/stream/login - авторизация по login (token) http://host:port/http/stream/ - авторизация по IP
host и port - задаются в настройках http server. stream - id stream. Не путать с порядковым номером в списке стримов. ID отображается вверху страницы статистики стрима, id задается при создании stream и никогда не меняется .
Аналогично для hls:
http://host:port/hls/stream/login/password http://host:port/hls/stream/login http://host:port/hls/stream/
На странице статистики stream отображаются url (ввиде шаблона) подключенных протоколов и текущий статус их работы. Неавторизированный доступ запрещен, клиенты должны быть прописаны в peer.
Для hls в url доступны дополнительные параметры (опциональны):
url?a=1&s=40&m=40&v=5
a - =0 относительный путь в play list, =1 абсолютный путь (по умолчанию).
s - продолжительность play list (sec), по умолчанию 40.
m - минимальная продолжительность play list (sec), по умолчанию 40.
Максимальный размер play list 60 сек. Если текущий размер буфера чанков менее минимального размера как в запросе, то будет выдана ошибка 404. Это сделано для того, что бы hls стартовал с заполненного буфера чанков на сервере.
v - версия hls протокола, выдаваемого в play list. По умолчанию 5. Смена версии может потребоваться для некоторых проигрывателей.
Операции с потоками¶
Удаление. Для удаления потока зайдите в настройки потока и нажмите кнопку Delete stream.
Клонирование. Для клонирования потока зайдите в настройки исходного потока и нажмите кнопку Clone stream.
Сортировка. Для настройки сортировки потоков нажмите кнопку Sort в окне списка потоков. После этого укажите нужный порядок путём перетаскивания потоков вверх и вниз по списку. Для сохранения указанного порядка сортировки нажмите кнопку Save order или Cancel для отмены изменений.
Фильтрация списка. Чтобы отфильтровать список потоков нажмите на кнопку с иконкой поиска и введите строку фильтра. Для отмены фильтра нажмите кнопку стрелки назад.
Групповые операции. В режиме фильтрации списка потоков возможно выбрать несколько потоков путём включения галочек в левом столбце. Если выбраны какие-то потоки, становятся доступны кнопки Удалить и Клонировать для выбранных потоков.
Отчеты и диагностика¶
В разделе Streams отображаются данные о всех stream в виде таблицы. Пауза - доступно ролям admin и restricted admin.
Для каждого stream доступна подробная статистика и отчеты.
Peers - список активных получателей (клиентов). Для каждого доступна отдельная статистика.
Анализ потоков¶
Анализатор потоков стримера производит измерение и анализ различных параметров потока MPEG-TS, что позволяет оценить качество.
Input speed - скорость (битрейт) потока в кbps. Изменяется после фильтрации по меткам PCR. Выводится ввиде графика, где также отображается выходной битрейт после синхронизатора.
Raw data speed - скорость приема данных по заданному протоколу. Overhead - дополнение в % на издежки протокола.
CC errors - пропуск пакетов (CC, discontinuity). Отображаются счетчики за периоды и накопительный счетчик за stream uptime. Также отображается история ввиде графика.
Scrambled - счетчики закодированных MPEGTS ES пакетов. Если не 0, то имеются сбои в декодировании закрытых каналов.
Sync by - Источник синхронизации, по умолчанию PCR. При некорректном PCR для синхронизации может использоваться PTS/DTS видео (см. соот настройку у input Force Sync by PTS).
PCR interval - интервал между PCR отметками. Рекомендуется не более 50 мс.
PCR jitter - характеризует точность синхронизации выходного потока. Измеряется как разница между PCR и реальным временем.
Analyze PCR PMT Gap - включается отдельной настройкой. Анализируется разброс между PCR и PTS/DTS для кажного ES. История отображается ввиде графика. Слишком большой разброс может вызвать проблемы у проигрывателе с малым размером буфера синхронизации. Анализ включается настройкой Analyze PAT/PMT/KF.
PAT interval и PMT interval - изменяется интервал между PAT (PMT) таблицами. Рекомендуется не более 500 мс. Анализ включается настройкой Analyze PAT/PMT/KF.
Key Frame interval - изменяется интервал между ключевыми кадрами (KF). Для проигрывателей с рандомным подключением к потоку рекомендуется не более 1 сек. Анализ включается настройкой Analyze PAT/PMT/KF.
PAT/KF interval - измеряет средний интервал между началом и концом последовательности PAT/PMT/SPS/PPS/KF. От этого зависит скорость старта воспроизведения проигрывателей с рандомным подключением к потоку. Измеряется по началу KF в потоке, поэтому реальное время старта проигрывателя будет больше. Анализ включается настройкой Analyze PAT/PMT/KF.
Включение Analyze PAT/PMT/KF включает анализатор потока в постоянном режиме, что приводит к увеличению нагрузки на CPU.
Исправление потоков¶
Fix PCR - включается в настройке input. Устраняет некоторые проблемы с PCR. Стрим синхронизируется от PTS/DTS видео и эти временные метки заменяют PCR.
Fix PAT/PMT interval - Принудительно делает интервал не более PAT/PMT 100 мс. Вставляет PAT/PMT перед SPS/PPS/KF видео, что минимизирует время старта проигрывателей с рандомным подключением к потоку.
System Monitor¶
Контроль основных параметров операционной системы.
Mosaic¶
Функция снятия скриншота с входного потока. Включается отдельно для каждого stream.
Если не требуется, то с целью экономии ресурсов может быть полностью отключена в разделе Settings/Server Settings.
Администрирование¶
В разделе Settings/Web Console Access/Administrators List добавляются пользователи для доступа к веб интерфейсу - встроенный HTTP сервер.
У пользователей назначаются роли:
admin - полный доступ.
restricted admin - настройки недоступны, есть возможность изменять значение pause.
viewer - доступ только в режиме просмотра.
Резервное копирование настроек¶
Для того, чтобы сделать резервную копию настроек, необходимо сохранить содержимое папки /opt/pss/config.
Для восстановления настроек остановите сервис и замените содержимое папки /opt/pss/config.
Импорт EPG/XMLTV¶
EPG данные собираются в EPG Database из разных источников:
EIT из принимаемых потоков (SPTS и MPTS). Включается настройкой Stream: Extract EIT to EPG Database.
Импорт в формате XMLTV из разных внешних источников. Задаются в настройках Configuration/EPG/EPG Sources.
Время хранения событий EPG задается параметром EPG storage period (days).
Auto-clean database - Удаляются программы, для которых нет событий.
В разделе EPG отображаются источники EPG и связанные с ними данные. Для каждого канала (EPG Channels List) можно задать:
Channel Name - имя, которое будет использовано в экпорте на сервере XMLTV.
Time Zone - можно скорректировать временную зону, если она при импорте не была привязана к UTC.
EPG Channel Sets - привязать канал к Channel Set (см ниже).
Сервер EPG/XMLTV¶
Используется для публикации EPG в формате XMLTV. Настраивается в Configuration/EPG/EPG Server.
Параметры EPG Source Name и EPG Source URL задают соответствующие значения, которые помещаются в заголовок XMLTV документа.
EPG в формате XMLTV доступен по ссылкам http://host:port/xmltv и http://host:port/xmltv.gz. Для доступа к EPG Server необходимо прописать клиента в EPG Server Clients.
По умолчанию для клиента XMLTV список будет пустым. Надо добавить группу каналов EPG Channel Sets, прописать ее у клиента и далее в эту группу назначить нужные каналы у источников.
Генератор EIT¶
EIT данные из EPG Database могут быть сгенерированы в SPTS Stream. Для этого в настройке Stream надо задать EPG Source ID и выбрать EPG Channel ID. При этом будет обязательно генерироваться SDT, даже если ее нет в источнике. Задайте корректно SDT Data.
Если этот Stream используется в мультиплексоре, то Service Name можно переопределить отдельно в настройке output/muxer.
Подключение внешних систем мониторинга¶
Для подключения сторонних систем мониторинга данные статистики можно запрашивать через встроенный http сервер. Формат запроса следующий:
GET http://host:port/data/server - общие данные сервера.
GET http://host:port/data/stream - список стримов.
GET http://host:port/data/stream/id - данные стрима с заданным id, который можно получить из списка стримов.
Данные выдаются в xml формате.
Способ аутентификации - BASIC. При запросе с localhost аутентификация не требуется.
Примеры скриптов для подключения систем мониторинга (zabbix) имеются в установочном пакете.
Получение порта http сервера из файла настроек pss.json:
PSS_DEFAULT_PORT=43971
HTTP_PORT=$(jq '."web-server"."bind-port"' /opt/pss/config/pss.json) || exit 1
test $HTTP_PORT = 'null' && HTTP_PORT=$PSS_DEFAULT_PORT
Скрипт zabbix_update.sh включает пример получения списка стримов и формирования метрик для zabbix-agent. Метрики включают значения скорости потока, потерянные и зашифрованные пакеты.
Скрипт update_data.sh включает пример получения данных. Для того, чтобы не нагружать сервер частыми запросами сделано кеширование.
URI=http://127.0.0.1:${HTTP_PORT}${URI_PATH}
wget -q $URI -O $XML_FILE
Изображения mosaic можно получить запросами:
GET http://host:port/data/mosaic - xml список стримов с доступными изображениями.
GET http://host:port/data/mosaic/id - сжатая jpeg картинка с нормализованным размером. id берется их списка стримов.
GET http://host:port/data/mosaic/id/program - Для MPTS потока. program - порядковый номер программы, начиная с 0.
GET http://host:port/data/mosaic/id/orig - картинка в формате png оригинального размера.
GET http://host:port/data/mosaic/id/program/orig - Для MPTS потока. program - порядковый номер программы, начиная с 0.
Экпорт логов¶
Для включения логов в syslog в файле pss.properties добавить настройки:
log-to-syslog=true
syslog-name=pss
Перегрузить сервис pss.
Доступ к данным встроенной БД¶
Для хранения различных данных статистики и событий имеется встроенная база данных типа sqlite, файл pss.sqlite.
Длительность хранения задается в главных настройках сервера.
Данные из БД доступны через http-запросы:
GET http://host:port/data/dbstat?tables=table_list&interval=10&t1=from&t2=to&agg=avg&digits=2
table_list - table1[,table2…].
interval - second, default 5, valid >=5.
t1 < 0, t2 < 0 - relative time from now.
t1 > 0, t2 > 0 - absolute epoch time.
agg - aggregate function [avg, min, max, sum] default avg.
digits - for float after point, default 2.
Данные выдаются в виде json.
Список таблиц можно увидеть открыв файл pss.sqlite.
Оптимизация работы программы¶
Если при большом количестве stream возникли проблемы с большой нагрузкой CPU или нехватка памяти, то можно провести оптимизацию настроек.
Отключить функции MPEG-TS фильтрации и обработки, если в этом нет необходимости. По умолчанию у stream включена функция Clean All Unnecessary Data, отключить если в потоке нет нежелательных данных. При полном отключении этих функций в Report пропадет раздел Original Media Information.
Полностью отключить и изменить настройки Mosaic. Полностью отключить можно в настройках сервера. Можно отключить индивидуально для каждого stream, или изменить интервал обновления настройкой Check Interval.
Ошибки queue overload для базы данных DBStat и DBEPG¶
Возникают при недостатке быстродействия баз данных - используется медленный диск или система слишком перегружена.
Место баз данных задается параметром data-dir файла конфигурации pss.properties
Возможные решения проблемы:
Перенос файлов баз данных в /tmp. Будет использована память системы, требует оценки свободной памяти и настройки времени хранения статистики (см настройки сервера). При рестарте системы данные будут потеряны.
Уменьшить детализацию статистики - см параметр dbstat-detail. По умолчанию 5 секунд. Можно увеличить до 20.
Разместить базу данных EPG в памяти - задать параметр dbepg-memory=true.
Экспорт и импорт конфигурации¶
С помощью скрипта на python¶
Экспорт и импорт конфигурации реализован через .m3u плейлист, делается через скрипт на Python.
Требуется наличие Python версии 3 по пути /usr/bin/python3.
В web-интерфейсе¶
В списке потоков при нажатии на кнопку Playlist открывается диалог экспорта потоков в плейлист формата m3u8. Экспортирутся только те потоки, которые в данный момент отображаются с учётом применённых фильтров списка.
Настройки:
Host / IP - указывается имя сервера или адрес, который будет использоваться для формирования URL потоков.
Protocols - указываются типы протоколов для экспорта.
Login - выбирается аккаунт, который будет использован для формирования URL потоков.
Use Display Names - использовать Display name потока вместо Stream name в m3u8-файле .
Плейлист скачивается в виде m3u8-файла при нажатии на кнопку Download.
При нажатии на кнопку Import Playlist происходит переключение диалога в режим импорта потоков из плейлиста формата m3u8. При импорте потоков существующие потоки не удаляются. У всех импортированных потоков в поле Note прописывается время импорта.
Настройки:
Playlist - выбор файла плейлиста для импорта.
Create Outputs - выбор протокола для автоматической генерации выходов для импортированных потоков.
Output Ports From - начальный номер порта для генерации выходов.
Output IP - выбор интерфейса, к которому привязываются выходные потоки.
Tags - тэги, которыми будут помечены импортированные потоки. Полезны для групповых операций. Например, для удаления всех импортированных потоков.
Если в поле Playlist указан файл для импорта, то кнопка Load Playlist становится активна. При нажатии на кнопку Load Playlist происходит предварительная загрузка плейлиста, результат парсинга плейлиста отображается в таблице. После парсинга плейлиста становится активна кнопка Import Streams, при нажатии на которую происходит импорт потоков и генерация выходов для них.