[gst-devel] Convert mp4 to mpeg2 transport stream using qtdemux & mpegtsmux

Ron McOuat rmcouat at smartt.com
Mon Mar 16 06:18:06 CET 2009


Without the dot gst-launch will look for an element type or class of mux 
for which there is none in existence in the same way it looks for and 
finds queue, mpegtsmux and filesink as other examples of elements used 
to assemble this pipeline. When you change mux to mux. gst-launch looks 
for an element in the pipeline with the name attribute of "mux" which 
was defined earlier in the video branch of the pipeline when mpegtsmux 
was first defined with the name=mux attribute. This is what makes it 
possible to define both the audio and video branch of a pipeline as a 
set of command line parameters. Draw it out as a set of boxes with a 
line between boxes for each ! and as you work through the command line 
you will notice there is only a space between the filesink with location 
and the demux.audio_00 ! queue ! mux. which defines the audio portion of 
the pipeline between the qtdemux and mpegtsmux elements. In the example 
you have that works demux.video_00 and demux.audio_00 both refer back to 
qtdemux name=demux and since they are at the head of the section of 
pipeline refer to the video and audio src pads on qtdemux.


Raymond Tam wrote:
> That works! Thank you Ron and Edward (sorry Edward I missed the dot at the end).
> Can you explain the meaning of the dot in the pipeline?
>
> Thanks,
> Raymond
>
>
> -----Original Message-----
> Date: Sun, 15 Mar 2009 11:01:15 -0700
> From: Ron McOuat <rmcouat at smartt.com>
> Subject: Re: [gst-devel] Convert mp4 to mpeg2 transport stream using
> 	qtdemux & mpegtsmux
> To: Discussion of the development of GStreamer
> 	<gstreamer-devel at lists.sourceforge.net>
> Message-ID: <49BD426B.3090109 at smartt.com>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> Add a . to the end of the pipeline
>
> gst-launch filesrc location=input_video.mp4 ! qtdemux name=demux demux.video_00 ! queue ! mpegtsmux name=mux ! filesink location=output_video.mpg demux.audio_00 ! queue ! mux.
>
>
>
> Raymond Tam wrote:
>   
>> Something is still not right with the pipeline. 
>>
>> When I use the pipeline, it exits immediately complaining not finding the "mux":
>>
>> [root at BB /]# gst-launch filesrc location=input_video.mp4 ! qtdemux name=demux demux.video_00 ! queue ! mpegtsmux name=mux ! filesink location=output_video.mpg demux.audio_00 ! queue ! mux
>> WARNING: erroneous pipeline: no element "mux"
>> [root at BB /]#
>>
>> Any idea?
>>
>> Thanks,
>> Raymond
>>
>>
>> -----Original Message-----
>> Date: Sun, 15 Mar 2009 14:25:16 +0100
>> From: Edward Hervey <bilboed at gmail.com>
>> Subject: Re: [gst-devel] Convert mp4 to mpeg2 transport stream using
>> 	qtdemux & mpegtsmux
>> To: Discussion of the development of GStreamer
>> 	<gstreamer-devel at lists.sourceforge.net>
>> Message-ID: <1237123516.5357.2.camel at putamadre>
>> Content-Type: text/plain
>>
>> On Sat, 2009-03-14 at 15:38 -0700, Raymond Tam wrote:
>>   
>>     
>>> Thanks Edward. But it still doesn't quite work.
>>>
>>> If I do this (with properties added):
>>>
>>>     gst-launch filesrc location=input_video.mp4 ! qtdemux name=demux
>>>  demux.video_00 ! queue ! mpegtsmux ! filesink
>>>  location=output_video.mpg demux.audio_00 ! queue ! mpegtsmux
>>>     
>>>       
>>   There was a mistake in the launch-line, the muxer wasn't used by name.
>> it should be:
>>
>> gst-launch filesrc location=input_video.mp4 ! qtdemux name=demux
>> demux.video_00 ! queue ! mpegtsmux name=mux ! filesink
>> location=output_video.mpg demux.audio_00 ! queue ! mux.
>>
>>    Edward
>>
>>   
>>     
>>>> then the output file contains audio only.
>>>>
>>>>
>>>> As an experiment, I then try this pipeline:
>>>>
>>>> gst-launch filesrc location=input_video.mp4 ! qtdemux name=demux demux.video_00 ! mpegtsmux m2ts-mode=FALSE ! filesink location=output_video.mpg
>>>>
>>>> and the output file contains video only. Using VLC player, I can playback this output file without problem, but of course there's no audio.
>>>>
>>>>
>>>> Can someone please tell me what would be the right pipeline to construct in order to properly perform the conversion?
>>>>
>>>> Thanks in advance.
>>>>
>>>> -Raymond
>>>>         
>
> ------------------------------------------------------------------------------
> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
> software that enables intelligent coding and step-through debugging.
> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>   




More information about the gstreamer-devel mailing list