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

Raymond Tam rtam at 2wire.com
Sat Mar 14 23:38:22 CET 2009


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

then I get this error in qtdemux:

    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    ERROR: from element /GstPipeline:pipeline0/GstQTDemux:demux: GStreamer encountered a general stream error.
    Additional debug info:
    /home/rtam/depot/mp/avstreaming/libs/gst-plugins-good-0.10.8/gst/qtdemux/qtdemux.c(1842): gst_qtdemux_loop ():  /GstPipeline:pipeline0/GstQTDemux:demux:
    streaming stopped, reason error
    ERROR: pipeline doesn't want to preroll.
    Setting pipeline to NULL ...
    FREEING pipeline ...



Then I thought may be I need to put "filesink" also for the audio, so I try this:

    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 ! filesink location=output_video.mpg

but the resulting file (output_video.mpg) has only audio when played-back with VLC.

How can I get "mpegtsmux" to mux properly?

Thanks,
Raymond


-----Original Message-----
Date: Sat, 14 Mar 2009 09:54:37 +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: <1237020877.2539.15.camel at putamadre>
Content-Type: text/plain

Hi,

  You need to creates links for both your streams, ergo something like
this (without properties for understanding):

  filesrc ! qtdemux name=demux demux.video_00 ! queue ! mpegtsmux !
filesink demux.audio_00 ! queue ! mpegtsmux

   Edward

On Fri, 2009-03-13 at 15:15 -0700, Raymond Tam wrote:
> Hi all,
> 
> I'm trying to convert a mp4 transport stream file (video: H264, audio: AAC) to mpeg-2 transport stream file.
> 
> 
> If I use the following pipeline:
> 
> gst-launch filesrc location=input_video.mp4 ! qtdemux ! mpegtsmux m2ts-mode=FALSE ! filesink location=output_video.mpg
> 
> 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




More information about the gstreamer-devel mailing list