how to create pipeline which can let ts to mp4 and without transcode
Thiago Santos
ts.santos at sisa.samsung.com
Mon May 19 03:20:16 PDT 2014
On 05/16/2014 05:45 AM, Williams wrote:
> 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
This seems like a bug, but you are using 0.10 version that is not
maintained anymore. This should work just fine in gstreamer 1.0, is it
possible for you to upgrade?
>
>
>
>
> --
> 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.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
--
Thiago Sousa Santos
Senior Multimedia Engineer, Open Source Group
Samsung Research America - Silicon Valley
More information about the gstreamer-devel
mailing list