How to l extract EPG data from MPEG TS files?

8

3

I have the ability to capture "MPEGTS" DVB/ATSC streams. I'd like to be able to take the TS files and extract "EPG" (programming guide) information from them, because FFmpeg (which does the capturing) doesn't seem to have the ability to read any EPG information from the MPEGTS streams. How do I extract this data into some text form that is human readable? I have the MPEGTS files available as the input. I tried a few libraries:

libdvbtee seems to only compile for unix: https://github.com/mkrufky/libdvbtee/issues/12 (update: it works for windows now, see the answer)

DVBInspector is GUI only (command line UI is desired here).

TSReader "free" version doesn't extract EPG's.

FFmpeg doesn't seem to have any concept of support for EPG "yet."

CherryEPG seems to only write, not read EPG.

libucsi can apparently do it but it wasn't clear if there was a command line option.

EPG Collector appears to be GUI only (?) and was hard to understand how to convert to a human readable output.

rogerdpack

Posted 2016-01-16T00:29:35.783

Reputation: 1 181

downvoters feel free to comment or tell me a better venue to post it. – rogerdpack – 2016-01-16T02:30:50.923

libdvbtee will compile for windows now if you use the win branch. I'm hoping to hear some test feedback before I merge the remaining changes into the master branch. http://github.com/mkrufky/libdvbtee/commits/win – mkrufky – 2016-01-20T19:02:07.517

Answers

8

As a result of you posting this question, I have gone ahead and fixed windows build support for libdvbtee

libdvbtee is an open source transport stream service information decoder library (mkrufky.github.io/libdvbtee) that you can use to view the EPG or any other service information embedded in any TS file. Use the following command:

dvbtee -F mpegfile.ts

If you add the -j option, it will also output the contents of the PSIP tables and descriptors in a JSON object:

dvbtee -F mpegfile.ts -j 

mkrufky

Posted 2016-01-16T00:29:35.783

Reputation: 196

The questioner already mentioned dvbtee and that it did not work for them. You should probably add that you improved your program in the meantime to build under Windows. :) – Dubu – 2016-01-28T08:28:05.797

1I indeed improved dvbtee as a result of the OP posting this question. Discussion has continued between us on the github issue tracker, he asked me to post a final answer here for the sake of other users. – mkrufky – 2016-01-28T10:58:02.107

Your dvbpsi library seems (unless the name is a coincidence) to be part of videolan now (http://git.videolan.org/git/libdvbpsi.git) but what about dvbtee itself?

– Bruce Adams – 2018-03-29T16:18:31.903

dvbpsi has been a part of videolan for as long as I can remember. dvbtee is a much higher level abstraction that is unlikely to ever join the videolan project. It is maintained and developed in a separate git repository. I'm open to creating distro packages if people are interested, but then again, it's open source and anyone may feel free to do so. – mkrufky – 2018-03-29T17:25:55.727

@BruceAdams, if you're looking for a windows build of dvbtee, the OP poster has a cross-build set up at https://github.com/rdp/ffmpeg-windows-build-helpers

– mkrufky – 2018-03-29T22:53:28.390

Actually I was looking for a linux build. – Bruce Adams – 2018-03-29T23:18:23.197

There are build instructions in the README.md – mkrufky – 2018-03-29T23:19:59.610

1

OK I did discover EPGCollector, it has EPGCentre.exe which is the nice UI and EPGCollector.exe which is a console app. The EPGCentre.exe spits out a configuration file which you can save anywhere, then just run the console app as a process and it'll tick away in the background

Sample command line args for the config file that the EPGCentre.exe spits out!

C:\EPGCollector.exe /INI=BNE.ini

rogerdpack

Posted 2016-01-16T00:29:35.783

Reputation: 1 181