After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 792336 - Regression? video-surveilance camera feed, h264 keyframes not identified, splitmuxsink doesn't split due to infinite GOP
Regression? video-surveilance camera feed, h264 keyframes not identified, spl...
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.12.3
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-01-08 16:58 UTC by cJ-gnome
Modified: 2018-11-03 15:25 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description cJ-gnome 2018-01-08 16:58:22 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>
Comment 1 Tim-Philipp Müller 2018-02-08 15:22:49 UTC
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.)
Comment 2 cJ-gnome 2018-03-25 23:02:15 UTC
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,
Comment 3 GStreamer system administrator 2018-11-03 15:25:21 UTC
-- 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.