Articles on: Tools & Utilities

EIT Stream

EIT Stream is a tool to convert XMLTV files into MPEG-TS stream with Event Information Tables (EIT) for broadcasting networks like DVB, ATSC, ISDB.

Installation



Just download single binary file and set execute permission:

curl -Lo /usr/bin/eit-stream http://cesbo.com/and/eit-stream
chmod +x /usr/bin/eit-stream


Configuration



Create a configuration file /etc/eit-stream.conf with any text editor. Example:

xmltv = /opt/xmltv.xml
output = udp://lo@239.0.0.1:1234
onid = 8000
codepage = 5
eit-days = 1
eit-rate = 1500

[tdt-tot]
country = EST
offset = +120

# First multiplex

[multiplex]
tsid = 1

[multiplex/service]
pnr = 101
xmltv-id = discovery

[multiplex/service]
pnr = 102
xmltv-id = history

# Second multiplex

[multiplex]
tsid = 2
xmltv = /opt/xmltv-2.xml

[multiplex/service]
pnr = 201
xmltv-id = euronews


Lines started with symbol # is a comment and ignored.

General options



xmltv - path to local xmltv file. or http/https link to xmltv or gzip xmltv file. This option could be redefined in [multiplex] or in [multiplex/service]
output - destination UDP address
onid - original network identifier
codepage - codepage. This option could be redefined in [multiplex] or in [multiplex/service]
eit-days - number of days in epg. default is 3
eit-rate - bitrate in kbit/s. default 15 kbit/s per each service

Supported codepages



Next codepages available for text encoding:

0 - Default. Latin (ISO 6937)
1 - Western European (ISO 8859-1)
2 - Central European (ISO 8859-2)
3 - South European (ISO 8859-3)
4 - North European (ISO 8859-4)
5 - Cyrillic (ISO 8859-5)
6 - Arabic (ISO 8859-6)
7 - Greek (ISO 8859-7)
8 - Hebrew (ISO 8859-8)
9 - Turkish (ISO 8859-9)
10 - Nordic (ISO 8859-10)
11 - Thai (ISO 8859-11)
13 - Baltic Rim (ISO 8859-13)
14 - Celtic (ISO 8859-14)
15 - Western European (ISO 8859-15)
21 - UTF-8

Time and date options



Section [tdt-tot]:

country - country code in format ISO 3166-1 alpha-3
offset - the signed time offset in minutes from GMT. For example +120 is GMT+2 or -300 is GMT-5

Multiplex options



Section [multiplex]

tsid - multiplex transport stream identifier
name - optional field to describe multiplex

Service options



Section [multiplex/service]

pnr - channel number/pnr
xmltv-id - channel id in xmltv
parental-rating - age restriction. Value defined in pairs: country and age. For example: parental-rating = EST 16 USA 14. Country code in ISO 3166-1 alpha-3 format (3 letters). Age from 4 to 18 (inclusive), 0 - without restrictions.

Mux stream with EIT to MPTS



With Astra you can append UDP stream with EIT to the MPTS.
In the MPTS settings append input and set and UDP address, for example in configuration above address is udp://lo@239.0.0.1:1234.
In the MPTS advanced settings turn on option "Pass EIT".

Autostart



Register service in systemd to start service in background and autostart on system startup. Create file /etc/systemd/system/eit-stream.service:

[Unit]
Description=eit-stream service
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/eit-stream /etc/eit-stream.conf
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target


Next command could be used to manage service:

start service: systemctl start eit-stream
stop service: systemctl stop eit-stream
enable auto-start: systemctl enable eit-stream
disable auto-start: systemctl disable eit-stream

Reload



To restart service once at night append next line into /etc/crontab:

0   2   *   *   *   root systemctl restart eit-stream

Updated on: 17/03/2023

Was this article helpful?

Share your feedback

Cancel

Thank you!