GNOME Bugzilla – Bug 792336
Regression? video-surveilance camera feed, h264 keyframes not identified, splitmuxsink doesn't split due to infinite GOP
Last modified: 2018-11-03 15:25:21 UTC
This was working prior to a gstreamer upgrade (prior: 1.8.3 or 1.10.4, current: 1.12.3). Running the pipeline: rtspsrc ! rtph264depay ! h264parse ! identity silent=false ! splitmuxsink name=sink max-size-time=10000000000 location=video%03d.mp4 Now, splitmuxsink doesn't split. Using ffmpeg to capture the RTSP feed to mp4 without transcoding, then processing the mp4 with gstreamer doesn't cause issues. Current: /GstPipeline:pipeline0/GstSplitMuxSink:sink/GstQueue:queue0: max-size-buffers = 252 /GstPipeline:pipeline0/GstIdentity:identity0: last-message = chain ******* (identity0:sink) (189112 bytes, dts: none, pts: 0:00:10.091041225, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f87683342b0 0:00:10.209103770 31069 0x7f876805e450 LOG splitmuxsink gstsplitmuxsink.c:1368:handle_mq_input:<queue0:sink> Fired probe type 0x1040 0:00:10.209162465 31069 0x7f876805e450 LOG splitmuxsink gstsplitmuxsink.c:1379:handle_mq_input:<queue0:sink> Event tag event: 0x7f874c018650, time 99:99:99.999999999, seq-num 711, GstTagList-stream, taglist=(taglist)"taglist\,\ video-codec\=\(string\)\"H.264\\\ \\\(Baseline\\\ Profile\\\)\"\,\ minimum-bitrate\=\(uint\)6787600\,\ maximum-bitrate\=\(uint\)37822400\,\ bitrate\=\(uint\)8482734\;"; 0:00:10.209255141 31069 0x7f876805e450 LOG splitmuxsink gstsplitmuxsink.c:1368:handle_mq_input:<queue0:sink> Fired probe type 0x1010 0:00:10.209285276 31069 0x7f876805e450 LOG splitmuxsink gstsplitmuxsink.c:1468:handle_mq_input:<queue0:sink> Buffer TS is 0:00:10.000000000 0:00:10.209321125 31069 0x7f876805e450 LOG splitmuxsink gstsplitmuxsink.c:1482:handle_mq_input:<queue0:sink> Buffer running TS is +0:00:10.000000000 0:00:10.209354220 31069 0x7f876805e450 LOG splitmuxsink gstsplitmuxsink.c:1496:handle_mq_input:<queue0:sink> in running time now +0:00:10.091041225 0:00:10.209386101 31069 0x7f876805e450 DEBUG splitmuxsink gstsplitmuxsink.c:1523:handle_mq_input:<queue0:sink> Buf TS +0:00:10.091041225 total GOP bytes 10456720 0:00:10.209421337 31069 0x7f876805e450 LOG splitmuxsink gstsplitmuxsink.c:1619:handle_mq_input:<queue0:sink> Returning to queue buffer buffer: 0x7f87682a6e40, pts 99:99:99.999999999, dts 0:00:10.000000000, dur 0:00:00.040000000, size 189112, offset 10456720, offset_end none, flags 0x0 run ts +0:00:10.091041225 0:00:10.209476947 31069 0x7f876805e450 DEBUG splitmuxsink gstsplitmuxsink.c:1680:handle_q_overrun:<queue0> Queue reported overrun with 0 keyframes and 0 cmds enqueued 0:00:10.209515002 31069 0x7f876805e450 DEBUG splitmuxsink gstsplitmuxsink.c:1708:handle_q_overrun:<queue0> Queue overflowed and needs enlarging. Growing to 253 buffers /GstPipeline:pipeline0/GstSplitMuxSink:sink/GstQueue:queue0: max-size-buffers = 253 Prior: /GstPipeline:pipeline0/GstIdentity:identity0: last-message = chain ******* (identity0:sink) (188750 bytes, dts: none, pts: 0:00:20.120181650, duration: none, offset: -1, offset_end: -1, flags: 00000000 ) 0x7f638832a240 0:00:20.227243100 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:1072:handle_mq_input:<multiqueue:sink_0> Fired probe type 0x1010 0:00:20.227269007 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:1131:handle_mq_input:<multiqueue:sink_0> Buffer TS is 0:00:20.000000000 0:00:20.227288042 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:1145:handle_mq_input:<multiqueue:sink_0> Buffer running TS is +0:00:20.000000000 0:00:20.227303696 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:1159:handle_mq_input:<multiqueue:sink_0> in running time now +0:00:20.120181650 0:00:20.227318269 11185 0x7f63880314f0 DEBUG splitmuxsink gstsplitmuxsink.c:1180:handle_mq_input:<multiqueue:sink_0> Buf TS +0:00:20.120181650 total in_bytes 21243668 0:00:20.227341942 11185 0x7f63880314f0 INFO splitmuxsink gstsplitmuxsink.c:1200:handle_mq_input:<multiqueue:sink_0> Have keyframe with running time +0:00:20.120181650 0:00:20.227372698 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:959:check_completed_gop:<sink> Checking GOP collected, Max in running time +0:00:20.120181650 ctx 0x7bf3a0 0:00:20.227400258 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:967:check_completed_gop:<sink> Context 0x7bf3a0 (src pad <multiqueue:src_0>) TS +0:00:20.120181650 EOS 0 0:00:20.227418041 11185 0x7f63880314f0 DEBUG splitmuxsink gstsplitmuxsink.c:981:check_completed_gop:<sink> Collected GOP is complete. Processing (ctx 0x7bf3a0) 0:00:20.227428282 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:899:handle_gathered_gop:<sink> mq at TS +0:00:10.040000000 bytes 11000255 0:00:20.227447285 11185 0x7f63880314f0 INFO splitmuxsink gstsplitmuxsink.c:913:handle_gathered_gop:<sink> mq overflowed since last, draining out. max out TS is +0:00:15.120181650 0:00:20.227461928 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:1243:handle_mq_input:<multiqueue:sink_0> Sending splitmuxsink-unblock event 0:00:20.227485016 11185 0x7f63880314f0 LOG splitmuxsink gstsplitmuxsink.c:1072:handle_mq_input:<multiqueue:sink_0> Fired probe type 0x1040 0:00:20.227489094 11185 0x7b4f70 INFO splitmuxsink gstsplitmuxsink.c:600:complete_or_wait_on_out:<multiqueue:src_0> Woken for new max running time +0:00:15.120181650 0:00:20.227532716 11185 0x7b4f70 LOG splitmuxsink gstsplitmuxsink.c:567:complete_or_wait_on_out:<multiqueue:src_0> Checking running time +0:00:15.120181650 against max +0:00:15.120181650 0:00:20.227555821 11185 0x7b4f70 INFO splitmuxsink gstsplitmuxsink.c:547:send_eos:<sink> Sending EOS on <muxer:video_0>
Thanks for the bug report. Could you capture the stream so that we can try and reproduce the issue? Something like: gst-launch-1.0 rtspsrc ! application/x-rtp,encoding-name=H264 ! gdppay ! filesink location=rtp-h264.gdp should do the trick. 9You might need to upload it somewhere else, depending on how large it gets, as there's a max size for attachments in bugzilla.)
Hi Tim, Sorry for replying this late, somehow I didn't see the notification. Here's one capture: http://ipfs.io/ipfs/zdj7WgZsKwi8K1X9LB1vb9RJ1DyMHtNTfYs7k7jGLwULDBoTB Best regards,
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/432.