From: Eric S. <es...@co...> - 2003-05-27 22:27:36
|
On Tue, 27 May 2003, Peter Maersk-Moller wrote: > Hi Eric > > Eric Sokolowsky wrote: > > libmpeg2 does not handle transport streams directly. There is a simple > > test program that comes with libmpeg2, called mpeg2dec, that does handle > > transport streams. Its use of transport streams was inadequate for our > > purposes, so I modified the program to automatically detect transport > > streams and play them. This program is simple, but because of that, > > has been quite useful for testing purposes. I would be willing to share > > my changes to mpeg2dec to any who are interested. Are the original > > authors/maintainers of mpeg2dec interested? mpeg2dec doesn't handle > > audio in transport streams. > > I for one would like to see your approach. I have earlier posted > some additional code here on this list for decoding audio and video in a > mpeg-2 ts and though it works, I think my code was inefficient. You can get my modified source for mpeg2enc here: http://svs-f.gsfc.nasa.gov/~esok/mpeg-tools/mpeg2dec-0.2.1 > > Well, the actual audio decoding is for me done by lame, it's more the > demuxing I'm talking about and interested in. I'd like to see a > demux that works better and some code to automagically detect > TS, PS, PES and VOB from stdin. Ok, you can get my transport stream code here: http://svs-f.gsfc.nasa.gov/~esok/mpeg-tools There are four files: ts_parse.c, ts_parse.h, es_position.c, and es_position.h. The "ts" files deal with transport streams, and the "es" files handle contiguous chunks of elementary streams within transport streams. I used this code to create a demuxer of transport streams pretty easily. (Sadly, my demuxer code is currently broken. I hope to fix it soon.) I would be interested in learning how to demux program streams as well, but information about these is sparse. Do you have any good pointers? There is a program (also on sourceforge) called mpgtx which does a lot of good diagnostic work. However, this program was inadequate in its support for diagnosing transport streams. (Specifically, it would not give any information about the elementary streams contained within the transport stream.) I added code to better handle them. It now supports all types of mpeg files (audio, video, transport streams, program streams, MPEG-1 system streams). mpgtx also contains code to check what type of file the source is, and can handle garbage at the beginning of the file, and can even handle garbage at the beginning of an elementary stream contained within a transport stream. I am in the process of submitting my changes to be incorporated with the current source, but if you don't want to wait, you can get it here: http://svs-f.gsfc.nasa.gov/~esok/mpeg-tools/mpgtx-1.4 -- ____ __ Eric Sokolowsky (GST) NASA Goddard Space Flight Center / __/__/_/__ Visualization Programmer Scientific Visualization Studio / __/ _/ / _/ es...@co... Mailstop 935.0 Bldg 28 Rm E102 /___/_//_/__/ 301.286.3751 Greenbelt, MD 20771 |