Flussonic Media Server Documentation


Adding the EPG to MPTS

Adding EPG to output MPTS streams

Flussonic can generate MPTS with an embedded electronic program guide (EPG). There is no longer any need for an additional EPG generator and remultiplexer to add EPG to TV channels.

Flussonic takes the EPG from files in the XMLTV format and converts it into EIT tables of service information of the transport stream. EIT is included into the transport stream both for the current transponder (Actual) and for other transponders in a network (Other). EPG is packed into the target bitrate, and a stream with a ready-made schedule goes to UDP multicast.

A description of the file format can be found at xmltv.org, and a broadcast schedule in this format is available at teleguide.info (http://www.teleguide.info/download/new3/xmltv.xml.gz).

How to set up EPG import to a transponder:

  1. In the transponder settings, add EIT options for importing EPG from XMLTV files.

  2. When the data in the XMLTV file is updated, you must reload the file into the transponder with the dedicated API command.

  3. When the data in the XMLTV file is updated, you may need to update the version number if you store it in a separate file.

Configuring the transponder to include the EPG

transponer tp1 {
  program 100 {title "program1"; eit_title "example_title"; };

other @tp2;

table eit { xmltv_url xmltv_dir1; interval pf actual=1 other=2; interval schedule other=20; max_bitrate 150; } }


  • eit_title — program name in the XMLTV file (if it differs from title).

  • xmltv_url — the path to the directory with XMLTV files. It can be a file name, for example, xmltv_url /path/to/xmltv.xml.

  • interval pf|schedule actual=<T1> other=<T2> — how often the EIT tables will be sent. The EPG is transmitted in two tables: the present/following program (pf) in one table and the schedule for several days (schedule) in the other table.

    • pf — how often the EIT table for the present/following program will be sent, in seconds.
    • schedule — how often the EIT table for the several days program will be sent, in seconds.
    • actual — defines the interval for the EPG transmitted in the transponder that you edit (tp1 in the example), that is, the program is passed in the same stream as the schedule for it.
    • other — defines the interval for the EPG transmitted in the transponder specified in the other option (tp2 in the example).

    If you set interval to 0, the EIT table will not be transferred.

    By default, actual (present/following) is 2 seconds, other (present/following) is 4 seconds, actual (schedule) and other (schedule) are 60 seconds.

    To transfer a large amount of EPG data without cutting out any data, you can increase the interval and/or increase the max_bitrate, or decrease the number of programs.

  • max_bitrate (Flussonic 20.11) — sets the maximum allowed bitrate, EIT data over the specified limit will be truncated. So, in order to transfer a large amount of EPG data, you can increase the bitrate. Also you can increase interval or transfer fewer programs in a stream.

Reloading the EPG into the transponder

When the EPG data has been updated in the XMLTV file, it must be passed to the transponder.

To make Flussonic reload the updated XMLTV data from the xmltv_url directory, run the HTTP API call:


For our example this call looks like:


EIT version

When the schedule is updated, the EIT version changes — this is a number from 0 to 63.

If the version is not specified inside the XMLTV file, then you can specify it yourself in the version.txt file. The version.txt file must be in the directory you specified in the xmltv_url option.

$ cat xmltv_dir1/version.txt


The XMLTV file from teleguide.info (http://www.teleguide.info/download/new3/xmltv.xml.gz) might contain overlapping transmissions. If this occurs, then Flussonic includes the earlier transmission to the EPG, and excludes the later one.