I am having zero luck recording h264 from an Axis camera to to a file using mp4mux. I want to use mp4mux so I can use faststart and because ffmux_mp4 produces poor video. I'm using gstreamer 0.10.25, gst-plugins-bad 0.10.13 (mp4mux), and gstreamer-ffmpeg 0.10.08.
Has anyone gotten this to work? Using ffmux_mp4 works, but produces video with really bad artifacts during motion: gst-launch -e -vm rtspsrc location="rtsp://axis-camera/axis-media/media.amp?videocodec=h264&streamprofile=test_1" ! rtph264depay byte-stream=false ! capsfilter caps="video/x-h264,width=704,height=480,framerate=(fraction)25/1" ! ffmux_mp4 name=muxer ! filesink location=/tmp/test1.mp4 The same pipeline with the mp4mux muxer fails: gst-launch -e -vm rtspsrc location="rtsp://axis-camera/axis-media/media.amp?videocodec=h264&streamprofile=test_1" ! rtph264depay byte-stream=false ! capsfilter caps="video/x-h264,width=704,height=480,framerate=(fraction)25/1" ! mp4mux name=muxer ! filesink location=/tmp/test1.mp4 This results in a "Failed to determine time to mux" error: . . . Got message #113 from element "pipeline0" (async-done): no message details 0:00:00.213694898 9030 0x7fe73c005310 WARN GST_PADS gstpad.c:3107:gst_pad_iterate_internal_links_default:<rtpsession0:recv_rtp_src> Making unsafe iterator Got message #115 from element "filesink0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; Got message #116 from element "pipeline0" (state-changed): GstMessageState, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; 0:00:00.221826588 9030 0x7fe75800cf90 WARN qtmux gstqtmux.c:1107:gst_qt_mux_add_buffer:<muxer> error: Failed to determine time to mux. Got message #117 from element "muxer" (error): GstMessageError, gerror=(GstGError)NULL, debug=(string)"gstqtmux.c\(1107\):\ gst_qt_mux_add_buffer\ \(\):\ /GstPipeline:pipeline0/GstMP4Mux:muxer:\012Failed\ to\ determine\ time\ to\ mux."; ERROR: from element /GstPipeline:pipeline0/GstMP4Mux:muxer: Could not multiplex stream. Additional debug info: gstqtmux.c(1107): gst_qt_mux_add_buffer (): /GstPipeline:pipeline0/GstMP4Mux:muxer: Failed to determine time to mux. . . . Execution ended after 22521367 ns. . . . Freeing pipeline ... Thanks in advance |
No idea, however I've found that sometimes it is necessary to put a
parser before the muxer. so perhaps an h264parse or mpeg4videoparse ? On 09/25/2012 12:30 PM, Chris wrote: > I am having zero luck recording h264 from an Axis camera to to a file using > mp4mux. I want to use mp4mux so I can use faststart and because ffmux_mp4 > produces poor video. I'm using gstreamer 0.10.25, gst-plugins-bad 0.10.13 > (mp4mux), and gstreamer-ffmpeg 0.10.08. > > Has anyone gotten this to work? > > Using ffmux_mp4 works, but produces video with really bad artifacts during > motion: > gst-launch -e -vm rtspsrc > location="rtsp://axis-camera/axis-media/media.amp?videocodec=h264&streamprofile=test_1" > ! rtph264depay byte-stream=false ! capsfilter > caps="video/x-h264,width=704,height=480,framerate=(fraction)25/1" ! > ffmux_mp4 name=muxer ! filesink location=/tmp/test1.mp4 > > > The same pipeline with the mp4mux muxer fails: > gst-launch -e -vm rtspsrc > location="rtsp://axis-camera/axis-media/media.amp?videocodec=h264&streamprofile=test_1" > ! rtph264depay byte-stream=false ! capsfilter > caps="video/x-h264,width=704,height=480,framerate=(fraction)25/1" ! mp4mux > name=muxer ! filesink location=/tmp/test1.mp4 > > This results in a "Failed to determine time to mux" error: > > . . . > Got message #113 from element "pipeline0" (async-done): no message details > 0:00:00.213694898 9030 0x7fe73c005310 WARN GST_PADS > gstpad.c:3107:gst_pad_iterate_internal_links_default:<rtpsession0:recv_rtp_src> > Making unsafe iterator > Got message #115 from element "filesink0" (state-changed): GstMessageState, > old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, > pending-state=(GstState)GST_STATE_VOID_PENDING; > Got message #116 from element "pipeline0" (state-changed): GstMessageState, > old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, > pending-state=(GstState)GST_STATE_VOID_PENDING; > 0:00:00.221826588 9030 0x7fe75800cf90 WARN qtmux > gstqtmux.c:1107:gst_qt_mux_add_buffer:<muxer> error: Failed to determine > time to mux. > Got message #117 from element "muxer" (error): GstMessageError, > gerror=(GstGError)NULL, debug=(string)"gstqtmux.c\(1107\):\ > gst_qt_mux_add_buffer\ \(\):\ > /GstPipeline:pipeline0/GstMP4Mux:muxer:\012Failed\ to\ determine\ time\ to\ > mux."; > ERROR: from element /GstPipeline:pipeline0/GstMP4Mux:muxer: Could not > multiplex stream. > Additional debug info: > gstqtmux.c(1107): gst_qt_mux_add_buffer (): > /GstPipeline:pipeline0/GstMP4Mux:muxer: > Failed to determine time to mux. > . . . > Execution ended after 22521367 ns. > . . . > Freeing pipeline ... > > > Thanks in advance > > > > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/rtspsrc-rtph264depay-mp4mux-not-working-tp4656380.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > -- Nathanael d. Noblet t 403.875.4613 _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Good response. That's what I originally thought should work, but it gave the
same "failed to determine time to mux" error. I've tried so many things now, I can't even remember them all. Here's the stream with the h264parse in it: gst-launch -e -vm rtspsrc location="rtsp://axis-camera/axis-media/media.amp?videocodec=h264&streamprof ile=test_1" ! rtph264depay byte-stream=false ! capsfilter caps="video/x-h264,width=704,height=480,framerate=(fraction)25/1" ! h264parse ! mp4mux name=muxer ! filesink location=/tmp/test1.mp4 -----Original Message----- From: gstreamer-devel-bounces+chris.demots=[hidden email] [mailto:gstreamer-devel-bounces+chris.demots=[hidden email] rg] On Behalf Of Nathanael D. Noblet Sent: Tuesday, September 25, 2012 2:36 PM To: Discussion of the development of and with GStreamer Subject: Re: rtspsrc ! rtph264depay ! mp4mux not working No idea, however I've found that sometimes it is necessary to put a parser before the muxer. so perhaps an h264parse or mpeg4videoparse ? On 09/25/2012 12:30 PM, Chris wrote: > I am having zero luck recording h264 from an Axis camera to to a file > using mp4mux. I want to use mp4mux so I can use faststart and because > ffmux_mp4 produces poor video. I'm using gstreamer 0.10.25, > gst-plugins-bad 0.10.13 (mp4mux), and gstreamer-ffmpeg 0.10.08. > > Has anyone gotten this to work? > > Using ffmux_mp4 works, but produces video with really bad artifacts > during > motion: > gst-launch -e -vm rtspsrc > ile=test_1" > ! rtph264depay byte-stream=false ! capsfilter > caps="video/x-h264,width=704,height=480,framerate=(fraction)25/1" ! > ffmux_mp4 name=muxer ! filesink location=/tmp/test1.mp4 > > > The same pipeline with the mp4mux muxer fails: > gst-launch -e -vm rtspsrc > location="rtsp://axis-camera/axis-media/media.amp?videocodec=h264&streamprof ile=test_1" > ! rtph264depay byte-stream=false ! capsfilter > caps="video/x-h264,width=704,height=480,framerate=(fraction)25/1" ! > mp4mux name=muxer ! filesink location=/tmp/test1.mp4 > > This results in a "Failed to determine time to mux" error: > > . . . > Got message #113 from element "pipeline0" (async-done): no message details > 0:00:00.213694898 9030 0x7fe73c005310 WARN GST_PADS > gstpad.c:3107:gst_pad_iterate_internal_links_default:<rtpsession0:recv > _rtp_src> > Making unsafe iterator > Got message #115 from element "filesink0" (state-changed): > GstMessageState, old-state=(GstState)GST_STATE_PAUSED, > new-state=(GstState)GST_STATE_PLAYING, > pending-state=(GstState)GST_STATE_VOID_PENDING; > Got message #116 from element "pipeline0" (state-changed): > GstMessageState, old-state=(GstState)GST_STATE_PAUSED, > new-state=(GstState)GST_STATE_PLAYING, > pending-state=(GstState)GST_STATE_VOID_PENDING; > 0:00:00.221826588 9030 0x7fe75800cf90 WARN qtmux > gstqtmux.c:1107:gst_qt_mux_add_buffer:<muxer> error: Failed to > determine time to mux. > Got message #117 from element "muxer" (error): GstMessageError, > gerror=(GstGError)NULL, debug=(string)"gstqtmux.c\(1107\):\ > gst_qt_mux_add_buffer\ \(\):\ > /GstPipeline:pipeline0/GstMP4Mux:muxer:\012Failed\ to\ determine\ > time\ to\ mux."; > ERROR: from element /GstPipeline:pipeline0/GstMP4Mux:muxer: Could not > multiplex stream. > Additional debug info: > gstqtmux.c(1107): gst_qt_mux_add_buffer (): > /GstPipeline:pipeline0/GstMP4Mux:muxer: > Failed to determine time to mux. > . . . > Execution ended after 22521367 ns. > . . . > Freeing pipeline ... > > > Thanks in advance > > > > -- > View this message in context: > http://gstreamer-devel.966125.n4.nabble.com/rtspsrc-rtph264depay-mp4mu > x-not-working-tp4656380.html Sent from the GStreamer-devel mailing > list archive at Nabble.com. > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel > -- Nathanael d. Noblet t 403.875.4613 _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Chris
On 25 Sep 2012, at 19:30, Chris wrote:
> I am having zero luck recording h264 from an Axis camera to to a file using > mp4mux. I want to use mp4mux so I can use faststart and because ffmux_mp4 > produces poor video. I'm using gstreamer 0.10.25, gst-plugins-bad 0.10.13 > (mp4mux), and gstreamer-ffmpeg 0.10.08. I don't know if this will help, but we recently needed to re-mux an h264 mpeg-ts (from a Hauppauge HD PVR capture device) into mp4 and this is what we did: v4l2src ! mpegtsdemux ! h264parse ! video/x-h264,stream-format=avc ! mp4mux dts-method=reorder ! filesink location=video.mp4 Note also that your GStreamer is a rather old version; you should try updating. mp4mux is in gst-plugins-good nowadays. Dave. _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
SOLVED
Updating gstreamer libs solved the issue. The pipeline that was failing is now working with these versions: gst-plugins-bad-0.10.20 gst-plugins-base-0.10.30 gst-plugins-good-0.10.24 gst-plugins-ugly-0.10.16 |
Free forum by Nabble | Edit this page |