Skip to content

MPEG Streams and Vindex

October 17, 2012
tags: , ,

Recently I have gotten two different users of the Vindex product asking about strange video files that they have not been able to successfully process with Vindex. It turns out that both were complex “program streams” rather than “elemental streams”.

What is a “program stream”? Well, the best example I know of is if you take a DVD (homegrown, not a commercial product) and copy off the .VOB files you have one or more files containing a MPEG-2 program stream. These files are constructed somewhat differently than an elemental stream file and there is navigational data present which is used by a set top DVD player to move between chapters and skip forward and back.

If you have a straight out-of-the-box Windows installation Windows Media Player will refuse to play a MPEG program stream file. However, after installing one of the many “CODEC packs” available for Windows you can convince Windows Media Player to play a program stream. What is happening is the navigational information is simply being ignored, as are any of the other items that are present that do not result in video or audio being played.

There is another sort of program stream that you can run into – the menu. A DVD that has been constructed with a menu will have a file called VTS_01_0.VOB which is rather small. This is, if you look at it, an MPEG-2 program stream file and it does in fact contain some video sequences – but it will not play in a normal manner. This file has subtitle information in it which is used to control how the menu operates. Often the video information in one of these files is a single frame that is looped or paused. Playing such a file with VideoLAN (VLC) sometimes shows something intelligible and sometimes not.

Vindex isn’t designed to deal directly with video files at all. We leave that up to the CODEC that Windows selects through either DirectShow or Media Foundation. After you install one of the CODEC packs for Windows, often such files will be somewhat playable and may be able to be processed by Vindex. The warning is that you may not be seeing the entire content that is present in the file. Because of this examining MPEG-2 Program Stream files is not supported and not recommended.

For version 1.5 of Vindex some changes were made to identify looping or infinite pause VOB files. It isn’t an absolute assurance that such files can be identified, but when one is instead of endlessly trying to process the video Vindex will reject it. If we could identify all MPEG-2 Program Stream files ahead of time, we would and they would be rejected.

To collect all of the content from such files when menu controls are used, one possible solution is to use HandBrake to convert the video to MPEG4 format. To do this properly, all titles and chapters have to be included. The resulting MPEG4 video will be just video and will be able to be examined by Vindex.

No comments yet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: