Stream always stops after a set amount of time

In a project of mine am am having an issue where the stream always stops after a set amount of time and the only way to start it back is to seek.

I have this issue in the app, but I can also reproduce it running gst-launch-1.0 playbin3 uri=https://...

On my computer it always stops at 2:36 at the highest quality, but it changes based on the device you are using and the audio quality.

Here are the messages I receive, basically it starts buffering but never goes any further.

Got message #466 from element "audiosink-actual-sink-pulse" (tag): GstMessageTag, taglist=(taglist)"taglist\,\ audio-codec\=\(string\)\"MPEG-4\\\ AAC\"\,\ maximum-bitrate\=\(uint\)320010\,\ bitrate\=\(uint\)320010\,\ container-specific-track-id\=\(string\)1\,\ minimum-bitrate\=\(uint\)264255\;";
Got message #467 from element "multiqueue1" (buffering): GstMessageBuffering, buffer-percent=(int)1, buffering-mode=(GstBufferingMode)stream, avg-in-rate=(int)-1, avg-out-rate=(int)-1, buffering-left=(gint64)-1;
Buffering, setting pipeline to PAUSED ...
Got message #468 from element "audiosink-actual-sink-pulse" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #469 from element "audiosink" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #470 from element "resample" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #471 from element "conv" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #472 from element "identity" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #473 from element "aconv" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #474 from element "aqueue" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #475 from element "abin" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #476 from element "streamsynchronizer0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #477 from element "audiotee" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #478 from element "playsink" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #479 from element "fdkaacdec0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #480 from element "multiqueue0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #481 from element "identity0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #482 from element "decodebin3-0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #483 from element "multiqueue1" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #484 from element "aacparse0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #485 from element "qtdemux0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #486 from element "typefind" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #487 from element "parsebin0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #488 from element "typefindelement0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #489 from element "souphttpsrc0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #490 from element "urisourcebin0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #491 from element "uridecodebin3" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;
Got message #492 from element "playbin3-0" (state-changed): GstMessageStateChanged, old-state=(GstState)playing, new-state=(GstState)paused, pending-state=(GstState)void-pending;

Hard to say what’s happening without a way to reproduce it, or a GST_DEBUG log.

1 Like

Thank you, here is the output with GST_DEBUG="*:6" gst-launch-1.0 playbin3 uri=https://... unfortunately I can’t share the link, because it uses a token.

It was pretty long so I uploaded it here: Context – share whatever you see with others in seconds

At 0:02:35.992558783 the buffering message is received

Running this seems to fix the issue: gst-launch-1.0 uridecodebin uri=https://... ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 ! audioconvert ! audioresample ! autoaudiosink

Thanks anyway!