how to create pipeline which can let ts to mp4 and without transcode

Williams ray20704 at gmail.com
Fri May 16 01:45:51 PDT 2014


hello everyone,

I am new to gstreamer and I need help.

I want to save ts and change to mp4 container, so I am doing Experiment 

to let  ts (video and audio)file change to mp4* without re-encoding. *

It mean just change container(ts ->mp4).

I have view some message, like 

http://en.it-usenet.org/thread/16990/6570/

but I still don't understand.

and I success to change ts to mp4 *with transcode* by  created the following
pipeline:

gst-launch-0.10 filesrc location=/nico.ts ! mpegtsdemux ! queue ! h264parse
! ffdec_h264 ! ffenc_mpeg4 ! mp4mux ! filesink location=/test.mp4

but when I take out transcode, like following pipeline:

gst-launch-0.10 filesrc location=/nico.ts ! mpegtsdemux ! queue ! h264parse
! mp4mux ! filesink location=/test.mp4

it will not work

and message is follow:
=========================================================================
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal
data flow error.
Additional debug info:
gstbasesrc.c(2625): gst_base_src_loop ():
/GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming task paused, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
=========================================================================

and I use --gst-debug=3

I find the place which occur error.

follow is error message :

==========================================================================

129 0:00:00.058553720  4720  0x9bdbf80 INFO                GST_PADS
gstutils.c:1596:prepare_link_maybe_ghosting: mpegtsdemux0 and queue0 in same
bin, no need f    or ghost pads
130 0:00:00.058603960  4720  0x9bdbf80 INFO                GST_PADS
gstpad.c:1978:gst_pad_link_prepare: trying to link mpegtsdemux0:video_1011
and queue0:sink
131 0:00:00.058713059  4720  0x9bdbf80 INFO                GST_PADS
gstpad.c:2161:gst_pad_link_full: linked mpegtsdemux0:video_1011 and
queue0:sink, successful
132 0:00:00.058765922  4720  0x9bdbf80 INFO               GST_EVENT
gstevent.c:600:gst_event_new_new_segment_full: creating newsegment update 0,
rate 1.000000,     format GST_FORMAT_TIME, start 0:00:12.007933333, stop
99:99:99.999999999, position 0:00:00.000000000
133 0:00:00.059159888  4720  0x9bdc000 WARN       codecparsers_h264
gsth264parser.c:1072:gst_h264_parser_parse_pic_timing: didn't get the
associated sequence p    aramater set for the current access unit
134 0:00:00.059206230  4720  0x9bdc000 WARN       codecparsers_h264
gsth264parser.c:1120:gst_h264_parser_parse_pic_timing: error parsing
"Picture timing"
135 0:00:00.059340034  4720  0x9bdbf80 INFO        GST_ELEMENT_PADS
gstelement.c:728:gst_element_add_pad:<mpegtsdemux0> adding pad 'audio_1100'
136 0:00:00.059380753  4720  0x9bdbf80 INFO               GST_EVENT
gstevent.c:600:gst_event_new_new_segment_full: creating newsegment update 0,
rate 1.000000,     format GST_FORMAT_TIME, start 0:00:12.007933333, stop
99:99:99.999999999, position 0:00:00.000000000
137 0:00:00.059496854  4720  0x9bdc000 WARN       codecparsers_h264
gsth264parser.c:1756:gst_h264_parser_parse_slice_hdr: couldn't find
associated picture para    meter set with id: 0
138 0:00:00.059591160  4720  0x9bdc000 WARN             mpegtsdemux
gstmpegtsdemux.c:3104:gst_mpegts_demux_src_pad_query:<mpegtsdemux0>
unsupported query forma    t or no bitrate yet to approximate duration from
bytes
139 0:00:00.059865320  4720  0x9bdc000 WARN                   qtmux
gstqtmux.c:3098:gst_qt_mux_video_sink_set_caps:<mp4mux0> no codec_data in
h264 caps
140 0:00:00.059906029  4720  0x9bdc000 WARN                   qtmux
gstqtmux.c:3251:gst_qt_mux_video_sink_set_caps:<mp4mux0> pad video_00
refused caps video/x-    h264, stream-format=(string)avc,
alignment=(string)au, parsed=(boolean)true, width=(int)1280, height=(int)720
141 0:00:00.060025512  4720  0x9bdbf80 INFO                 basesrc
gstbasesrc.c:2562:gst_base_src_loop:<filesrc0> pausing after gst_pad_push()
= not-negotiate    d
142 0:00:00.060079744  4720  0x9bdbf80 WARN                 basesrc
gstbasesrc.c:2625:gst_base_src_loop:<filesrc0> error: Internal data flow
error.
143 0:00:00.060114923  4720  0x9bdbf80 WARN                 basesrc
gstbasesrc.c:2625:gst_base_src_loop:<filesrc0> error: streaming task paused,
reason not-neg    otiated (-4)
144 0:00:00.060150687  4720  0x9bdbf80 INFO        GST_ERROR_SYSTEM
gstelement.c:1964:gst_element_message_full:<filesrc0> posting message:
Internal data flow e    rror.
145 ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal
data flow error.
146 Additional debug info:
147 gstbasesrc.c(2625): gst_base_src_loop ():
/GstPipeline:pipeline0/GstFileSrc:filesrc0:
148 streaming task paused, reason not-negotiated (-4)
149 ERROR: pipeline doesn't want to preroll.
==============================================================================

anyone can help me to create a pipeline to let ts file to mp4 without
transcode




--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/how-to-create-pipeline-which-can-let-ts-to-mp4-and-without-transcode-tp4666991.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list