[gst-devel] handling multiple audio streams

Tim-Philipp Müller t.i.m at zen.co.uk
Wed Feb 25 10:18:33 CET 2009


On Mon, 2009-02-23 at 13:53 +0530, Jyoti D wrote:

> I am writing an application to transcode TS file into h264 and aac
> format and store the transcoded file.
> The application works fine with the input files which have one video
> and audio stream.
> If I have more than 1 audio files I still want to transcode all the
> audio streams into aac format and store them in a single file.
> 
> Could someone help me to handle ore than 1 audio streams?
> 
> I am currently using the below pipeline :
> 
> gst-launch-0.10 uridecodebin uri=file://in-file.ts name=d d. ! queue !
> audioconvert ! faac ! ffmux_mp4 name=mux ! filesink
> location=~/Desktop/h264-aac/out-file.mp4  d. ! queue !
> ffmpegcolorspace ! x264enc pass=qual quantizer=16 ref=3 subme=6
> analyse=p4x4 me=umh ! mux.

With gst-launch, you need to know how many streams there are in the
input stream in advance, and specify a transcoding path (d. !
queue ! ..) for each audio and video stream you want to transcode. You
can't have a generic pipeline which handles all cases, because if there
is only one audio stream but you specified multiple audio transcoding
paths, then gst-launch will hang/wait forever for the other audio pads.

In other words: you need to write code to handle this.


> I get the following warning messages while running the above pipeline:
> 
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:d: No
> decoder available for type 'application/x-mpegts-private-section'.
> Additional debug info:
> gsturidecodebin.c(589): unknown_type_cb
> (): /GstPipeline:pipeline0/GstURIDecodeBin:d
> WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:d: No
> decoder available for type 'application/x-mpegts-private-section'.
> Additional debug info:
> gsturidecodebin.c(589): unknown_type_cb
> (): /GstPipeline:pipeline0/GstURIDecodeBin:d
> WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:d: No
> decoder available for type 'application/x-mpegts-private-section'.
> Additional debug info:
> gsturidecodebin.c(589): unknown_type_cb
> (): /GstPipeline:pipeline0/GstURIDecodeBin:d
> WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:d: No
> decoder available for type 'application/x-mpegts-private-section'.
> Additional debug info:
> gsturidecodebin.c(589): unknown_type_cb
> (): /GstPipeline:pipeline0/GstURIDecodeBin:d
> WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:d: No
> decoder available for type 'application/x-mpegts-private-section'.
> Additional debug info:
> gsturidecodebin.c(589): unknown_type_cb
> (): /GstPipeline:pipeline0/GstURIDecodeBin:d
> WARNING: from element /GstPipeline:pipeline0/GstURIDecodeBin:d: No
> decoder available for type 'private/teletext'.
> Additional debug info:
> gsturidecodebin.c(589): unknown_type_cb
> (): /GstPipeline:pipeline0/GstURIDecodeBin:d

I don't think those are fatal or related to your problem. You can
probably ignore them.

Cheers
 -Tim






More information about the gstreamer-devel mailing list