Selecting alternate elementary streams

jitendra singh jeetdrive at
Thu May 5 00:04:54 PDT 2011

Hi jim,
         mpegtsdemux has two properties "program-number" and "es-pids". To
play specific program from a ts file just mention the program-number of that
program (which you can find using any ts stream analyzer or by writing a
parser for pat/pmt). The es-pids takes colon separated  value of video pid,
audio pid and pcr pid respectively. to play a particular audio stream you
need to specify the pid of that stream.

for example

     gst-launch filesrc location=./some.ts ! mpegtsparse ! mpegtsdemux
es-pids=0x2e2:0x2e3:0x2e4 ! decodebin ! ffmpegcolorspace ! autovideosink

similarly you can specify the program number.

playbin2 also has properties to play specific audio stream. you just need to
figure out how to use them.


On Mon, May 2, 2011 at 8:15 AM, Jim Hodapp <james.hodapp at> wrote:

> I am using playbin2 to construct a pipeline that, for this example, is
> using mpegtsdemux. My source program contains one video stream and multiple
> audio streams for different languages. My first question is, what is the
> intended way to be notified and extract the PMT information that makes up
> this program from playbin2? Do I need to get a pointer directly to the demux
> or is there a way that playbin2 can abstract this for me?
> My second question is how do then select a particular audio stream to be
> used? Does playbin2 also abstract this operation?
> If playbin2 does not directly provide a generic interface to do this, is
> there an interface to accomplish this that would also apply to other types
> of demuxes that support the notion of a program and elementary streams?
> Thanks,
> Jim
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list