EIT Stream
EIT Stream — это инструмент для преобразования файлов XMLTV в поток MPEG-TS с таблицами информации о событиях (EIT) для вещательных сетей, таких как DVB, ATSC, ISDB.
Установка
Заголовок раздела «Установка»Просто скачайте один исполняемый файл и установите права на выполнение:
curl -Lo /usr/bin/eit-stream http://cesbo.com/and/eit-streamchmod +x /usr/bin/eit-streamНастройка
Заголовок раздела «Настройка»Создайте файл конфигурации /etc/eit-stream.conf с помощью любого текстового редактора. Пример:
xmltv = /opt/xmltv.xmloutput = udp://lo@239.0.0.1:1234onid = 8000codepage = 5eit-days = 1eit-rate = 1500
[tdt-tot]country = ESToffset = +120
# Первый мультиплекс
[multiplex]tsid = 1
[multiplex/service]pnr = 101xmltv-id = discovery
[multiplex/service]pnr = 102xmltv-id = history
# Второй мультиплекс
[multiplex]tsid = 2xmltv = /opt/xmltv-2.xml
[multiplex/service]pnr = 201xmltv-id = euronewsСтроки, начинающиеся с символа #, являются комментариями и игнорируются.
Общие параметры
Заголовок раздела «Общие параметры»xmltv— путь к локальному файлу xmltv или http/https ссылка на xmltv или gzip xmltv файл. Этот параметр может быть переопределён в[multiplex]или в[multiplex/service]output— целевой UDP-адресonid— идентификатор исходной сетиcodepage— кодировка. Этот параметр может быть переопределён в[multiplex]или в[multiplex/service]eit-days— количество дней в epg. По умолчанию 3eit-rate— битрейт в кбит/с. По умолчанию 15 кбит/с на каждый сервис
Поддерживаемые кодировки
Заголовок раздела «Поддерживаемые кодировки»Доступны следующие кодировки для текстового кодирования:
0— По умолчанию. Латиница (ISO 6937)1— Западноевропейская (ISO 8859-1)2— Центральноевропейская (ISO 8859-2)3— Южноевропейская (ISO 8859-3)4— Североевропейская (ISO 8859-4)5— Кириллица (ISO 8859-5)6— Арабская (ISO 8859-6)7— Греческая (ISO 8859-7)8— Иврит (ISO 8859-8)9— Турецкая (ISO 8859-9)10— Нордическая (ISO 8859-10)11— Тайская (ISO 8859-11)13— Балтийская (ISO 8859-13)14— Кельтская (ISO 8859-14)15— Западноевропейская (ISO 8859-15)21— UTF-8
Параметры времени и даты
Заголовок раздела «Параметры времени и даты»Секция [tdt-tot]:
country— код страны в формате ISO 3166-1 alpha-3offset— смещённое время в минутах относительно GMT. Например, +120 — это GMT+2, а -300 — это GMT-5
Параметры мультиплекса
Заголовок раздела «Параметры мультиплекса»Секция [multiplex]
tsid— идентификатор транспортного потока мультиплексаname— необязательное поле для описания мультиплекса
Параметры сервиса
Заголовок раздела «Параметры сервиса»Секция [multiplex/service]
pnr— номер канала/pnrxmltv-id— идентификатор канала в xmltvparental-rating— возрастное ограничение. Значение задаётся парами: страна и возраст. Например:parental-rating = EST 16 USA 14. Код страны в формате ISO 3166-1 alpha-3 (3 буквы). Возраст от 4 до 18 (включительно), 0 — без ограничений.
Мультиплексирование потока с EIT в MPTS
Заголовок раздела «Мультиплексирование потока с EIT в MPTS»С помощью Astra вы можете добавить UDP-поток с EIT в MPTS.
В настройках MPTS добавьте вход и укажите UDP-адрес, например, в приведённой выше конфигурации адрес — udp://lo@239.0.0.1:1234.
В дополнительных настройках MPTS включите опцию “Pass EIT”.
Используйте опцию no_eit на других входах, чтобы отключить EIT с других входов.
Автозапуск
Заголовок раздела «Автозапуск»Зарегистрируйте сервис в systemd, чтобы запускать его в фоновом режиме и автоматически при старте системы. Создайте файл /etc/systemd/system/eit-stream.service:
[Unit]Description=eit-stream serviceAfter=network-online.target
[Service]Type=simpleExecStart=/usr/bin/eit-stream /etc/eit-stream.confKillMode=processRestart=on-failure
[Install]WantedBy=multi-user.targetСледующие команды можно использовать для управления сервисом:
- запустить сервис:
systemctl start eit-stream - остановить сервис:
systemctl stop eit-stream - включить автозапуск:
systemctl enable eit-stream - отключить автозапуск:
systemctl disable eit-stream
Перезапуск
Заголовок раздела «Перезапуск»Чтобы перезапускать сервис один раз за ночь, добавьте следующую строку в /etc/crontab:
0 2 * * * root systemctl restart eit-streamФормат XMLTV
Заголовок раздела «Формат XMLTV»XMLTV — это формат на основе XML для описания информации о телепрограммах. Он предоставляет механизм для хранения информации о каналах, расписания программ и связанной с ними метаданных.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE tv SYSTEM "xmltv.dtd"><tv generator-info-name="Some tv generator"> <channel id="1"> <display-name lang="en">Channel 1</display-name> <icon src="http://site.domain/1.png"/> </channel> <channel id="2"> <display-name lang="en">Channel 2</display-name> <icon src="http://site.domain/2.png"/> </channel> <programme start="20180920140000 +0300" stop="20180920141500 +0300" channel="1"> <title lang="en">Program title 1</title> <desc lang="en">Program description 1</title> <date>Program release date 1</date> <category lang="en">Category 1</category> <category lang="en">Category 2</category> </programme> <programme start="20180920150000 +0300" stop="20180920141600 +0300" channel="1"> <title lang="en">Program title 2</title> <desc lang="en">Program description 2</title> <date>Program release date 2</date> <category lang="en">Category 1</category> </programme> <programme start="20180920143000 +0300" stop="20180920141500 +0300" channel="2"> <title lang="en">Program title 3</title> <desc lang="en">Program description 3</title> <date>Program release date 3</date> <category lang="en">Category 1</category> <category lang="en"> Category 2</category> </programme></tv>