Pipeline fails after exactly 2.5 hours

Nicolas Dufresne nicolas at ndufresne.ca
Sun Nov 17 19:09:18 UTC 2019


Le dimanche 17 novembre 2019 à 10:43 -0600, Henk Schurink a écrit :
> Hi Nicolas, I appreciate your answer.
> 
> Last night I upgraded to 1.16.1. The pipeline crashes even earlier and the
> produced files are between 20-70MB each, never reaching the 100MB limit
> assigned to splitmuxsink.
> 
> This is the error message when the current file stops and the next file
> starts (it does recover after this error but it prematurely starts recording
> to the next file for some reason.):
> 
> 0:02:08.755626858  3899 0x55b20b68b630 WARN                  
> qtmux gstqtmux.c:5118:gst_qt_mux_can_renegotiate:<muxer> pad video_0
> refused renegotiation to video/x-h264,
> codec_data=(buffer)0164001fffe1001c6764001facd9405005bb016a02020280000003008000001e478c18cb01000568ebecb22c,
> stream-format=(string)avc, alignment=(string)au, level=(string)3.1,
> profile=(string)high, width=(int)1280, height=(int)720,
> pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1,
> interlace-mode=(string)progressive, colorimetry=(string)bt709,
> chroma-site=(string)mpeg2, multiview-mode=(string)mono,
> multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
> chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
> bit-depth-chroma=(uint)8, parsed=(boolean)true
> 0:02:12.798088977  3899 0x55b20b68b400 WARN                  
> libav gstavviddec.c:880:gst_ffmpegviddec_get_buffer2:<avdec_h264-0>
> Couldn't get codec frame !
> 0:02:12.798202672  3899 0x55b20b68b400 ERROR                 
> libav :0:: get_buffer() failed
> 0:02:12.798210177  3899 0x55b20b68b400 ERROR                 
> libav :0:: thread_get_buffer() failed
> 0:02:12.798217659  3899 0x55b20b68b400 ERROR                 
> libav :0:: decode_slice_header error
> 0:02:12.798224304  3899 0x55b20b68b400 ERROR                 
> libav :0:: no frame!
> 0:02:12.798235775  3899 0x55b20b68b400 WARN                  
> libav gstavviddec.c:1864:gst_ffmpegviddec_handle_frame:<avdec_h264-0>
> Failed to send data for decoding
> 0:02:20.327723513  3899 0x55b20b68b630 FIXME              
> basesink gstbasesink.c:3246:gst_base_sink_default_event:<sink>
> stream-start event without group-id. Consider implementing group-id handling
> in the upstream elements
> 0:02:20.327834709  3899 0x55b20b68b630 WARN                  
> qtmux gstqtmux.c:2981:gst_qt_mux_start_file:<muxer> Robust muxing
> requires reserved-moov-update-period to be set
> 0:02:22.864544424  3899 0x7fe534050400 WARN        
> rtpjitterbuffer rtpjitterbuffer.c:572:calculate_skew: delta - skew:
> 0:00:01.028883909 too big, reset skew
> 0:02:22.864603568  3899 0x7fe510002d40 WARN        
> rtpjitterbuffer rtpjitterbuffer.c:572:calculate_skew: delta - skew:
> 0:00:01.028883909 too big, reset skew
> 
> And after ~30 minutes the pipeline crashes with the following error:
> 
> 0:24:12.513906078  3899 0x55b20b68b400 WARN                  
> libav gstavviddec.c:880:gst_ffmpegviddec_get_buffer2:<avdec_h264-0>
> Couldn't get codec frame !
> 0:24:12.514386268  3899 0x55b20b68b400 ERROR                 
> libav :0:: get_buffer() failed
> 0:24:12.514395743  3899 0x55b20b68b400 ERROR                 
> libav :0:: thread_get_buffer() failed
> 0:24:12.514404721  3899 0x55b20b68b400 ERROR                 
> libav :0:: decode_slice_header error
> 0:24:12.514412069  3899 0x55b20b68b400 ERROR                 
> libav :0:: no frame!
> 0:24:12.514424554  3899 0x55b20b68b400 WARN                  
> libav gstavviddec.c:1864:gst_ffmpegviddec_handle_frame:<avdec_h264-0>
> Failed to send data for decoding
> 0:24:26.024407851  3899 0x55b20b68b400 WARN           
> videodecoder
> gstvideodecoder.c:2759:gst_video_decoder_prepare_finish_frame:<avdec_h264-0>
> decreasing timestamp (0:24:21.883374288 < 0:24:21.904006671)
> 0:24:29.514983177  3899 0x55b20b68b630 WARN                  
> qtmux gstqtmux.c:4832:gst_qt_mux_add_buffer:<muxer> error: Buffer has
> no PTS.
> ERROR: from element
> /GstPipeline:pipeline0/GstSplitMuxSink:splitmuxsink0/GstMP4Mux:muxer: Could
> not multiplex stream.
> Additional debug info:
> gstqtmux.c(4832): gst_qt_mux_add_buffer ():
> /GstPipeline:pipeline0/GstSplitMuxSink:splitmuxsink0/GstMP4Mux:muxer:
> Buffer has no PTS.
> EOS on shutdown enabled -- waiting for EOS after Error
> Waiting for EOS...
> 
> Any idea what might cause this behaviour? 

First degree answer is "Buffer has no PTS.". But that seems like a side
effect of the stream being corrupted. You have to analyse your
bitstream and find out why it gets corrupted before it reaches the
decoder.

> 
> 
> 
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list