How to check MPEG-TS program map table

Posted: 2023-09-25

Today we will learn how to quickly check MPEG-TS program map table (PMT) using VTCLab Media Analyzer.

When you begin the analysis of MPEG-TS file, PMT may be a good start point. It contains information about all elementary streams in the file. You can see the list of elementary streams, their types, PIDs and other information.

However, PMT may not be easily found in the file. It is not always located at the beginning of the file, especially if your file is some chunk of a big stream, maybe even a live stream. In this case PMT may be located in the middle of the file or even at the end of the file. So, how to find it?

First is obvious - you have to open your file in VTCLab Media Analyzer first. To do this, you can use "Open File" button in the header section.

After initial parsing is complete, all streams found in the file will be listed in the left panel. By default, they all are enabled, so the right panel (headers section) will show all bitstream elements found in the file.

That's usually a bit too much, so you can disable some streams in the left panel. For example, you can disable all video streams and leave only audio streams enabled. This will reduce the number of elements in the right panel.

Each stream has corresponding icon describing its status. If the stream and all its child streams are enabled, the icon will look as a check mark (✔). Right arrow icon (➔) means that the stream is enabled, but some of its child streams are disabled. If the stream is disabled, the icon will look as a cross (✖).

When you click on the stream or its icon in the left panel, it will change its status. If the stream is enabled, it will be disabled. If the stream has child streams, they will be disabled as well. So, if the stream has child streams, the transition will be from ✔ to ✖ to ➔ and loop back to ✔. If the stream has no child streams, the transition will be from ✔ to ✖ and back to ✔.

So, to be able to see PMT, you have to disable all streams except one. First, disable all streams by clicking on the root stream (the one with the type of the file, it is on the top of the list). Then find the stream with type "PMT Stream" and enable it.

Now you can see PMT-related information in the right panel. It will look like this:

PMT_list

"TS PSI Pointer" is a helper element, it doesn't contain any useful information. What you need is some "Program Map Table (PMT)" element. It's not always true, but usually they contain the same data, so you may click on any of them. It will open the detailed view of the element:

PMT_detailed

Now you are ready to start the analysis of PMT. You can see the list of elementary streams, their stream types, PIDs and descriptors.

This will help you to understand the structure of the file and find the elementary streams you need for further analysis.