-
-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The case of the disappearing buffer #4139
Comments
Hi @SpeedyCharly, Let me retell your story.
Am I correct? |
Sounds about right save for points 3 & 4 ; client doesn't actually disconnect from the server - it's a simple case of a bit of dead air when DJ is slow to open mike at end of song or some such... We're running Sam Broadcaster and it doesn't actually disconnect event when AutoDj kicks in when the buffer is depleted. Normal operations, with buffer reset, resumes as soon as operator resumes streaming... We don't need to restart the encoder unless we exceed the app's timeout. |
Hi @SpeedyCharly, |
Dead air is typically silence in the delay time between the end of a song and the dj turning on his mike, or any other delay between operations. The client is still connected but nothing is being transmitted to the server. Which is the main reason we have a buffer to begin with, or else we'd be disconnected all the time. And no, I don't have the space on my server to run anything else but my Azuracast installation... radio on a shoestring here... |
Here's how I figure this is happening; Am I wrong anywhere on this? |
Hi @SpeedyCharly, |
Description
Posted this as a bug, then as discussion on the Azuracast Forum [https://github.com/AzuraCast/AzuraCast/issues/7433] but it didn't attract the attention I had hoped... [Buster later stated it was likely an LS issue]
Wondering if anyone else has experienced this;
For a long while now, we've been having live streamers getting disconnected for a few seconds without warning following a tiny bit of dead air (usually slight delay in switching to mike after a song). This typically occurs once or twice over the course of their broadcast. Such delays are not usually long enough for the streaming app to go off air. On such occasions, Autodj automatically kicks in with a song that will stop playing as soon as the stream comes back after the little bit of dead air ends.
Looking to the logs was not giving us any obvious clues as to what was happening, so I decided to do some experimentation to hopefully discover what was happening. I would intentionally create little bits of dead air, and, after about 10 or 12 such bits the Autodj would kick in until I resumed streaming (all without having to reconnect as the encoder would stay alive during such a short delay).
After a few times doing this, I started noticing that the buffer delay was getting shorter after each such little bit of dead air. Starting at 30 seconds, it would erode all the way to zero at which time the Autodj would kick in on the next bit of dead air.
I don't remember exactly on which release it started doing this, but it seems to me it wasn't always so; the delay would remain at 30 secs or whatever time you would set the buffer at.
I've included a bit of LS log showing one such occasion where the streamer was dropped - I personally don't see a clue to a solution, but you guys might...
As always, thank you for your hard work and for such a great app
Speedy Charly
Steps to reproduce
Stated above...
Expected behavior
There is no reason that little bits of dead air should erode the buffer down to zero, it should remain constant. In fact this is a fairly recent issue that didn't exist in previous versions...
Liquidsoap version
Liquidsoap build config
Installation method
From official container image
Additional Info
LS Log;
024/09/09 17:44:56 [harbor:4] Request to update metadata for mount / on port 8005
2024/09/09 17:44:56 [lang:3] API auth - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/auth' with body: { "user": "XXX", "password": "YYYY" }
2024/09/09 17:44:57 [lang:3] API auth - Response (200): true
2024/09/09 17:44:57 [harbor:4] Client logged in.
2024/09/09 17:44:57 [input_streamer:3] New metadata chunk ? -- Honoré Godbout - Y'a trop d'amour autour de moi - Speedy en ondes.
2024/09/09 17:45:01 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {"title":"Honoré Godbout - Y'a trop d'amour autour de moi - Speedy en ondes"}
2024/09/09 17:45:01 [server:4] New client unix socket "".
2024/09/09 17:45:01 [server:4] Client unix socket "" disconnected.
2024/09/09 17:45:01 [lang:3] API feedback - Response (200): true
2024/09/09 17:46:01 [server:4] New client unix socket "".
2024/09/09 17:46:01 [server:4] Client unix socket "" disconnected.
2024/09/09 17:47:01 [server:4] New client unix socket "".
2024/09/09 17:47:01 [server:4] Client unix socket "" disconnected.
2024/09/09 17:48:01 [server:4] New client unix socket "".
2024/09/09 17:48:01 [server:4] Client unix socket "" disconnected.
2024/09/09 17:48:38 [input_streamer:4] End of track
!!
Delay in opening mike at end of song >> switch to Autodj immediately - no buffer left!
!!
2024/09/09 17:48:38 [input_streamer:4] Buffer emptied, buffering needed.
Of course, it got eroded to zero
2024/09/09 17:48:38 [live_fallback:3] Switch to ladspa with forgetful transition.
2024/09/09 17:48:38 [source:4] Source replay_metadata.159 gets down.
2024/09/09 17:48:38 [source:4] Source replay_metadata.160 gets up with content type: {audio=pcm(stereo)}.
2024/09/09 17:48:38 [replay_metadata.160:3] Content type is {audio=pcm(stereo)}.
2024/09/09 17:48:38 [next_song:4] Remaining 0 requests
2024/09/09 17:48:38 [next_song:3] Prepared "/var/azuracast/stations/radio_des_festivals/media/Country Anglo/Freddy Fender - Sweet Summer Day.mp3" (RID 2687).
2024/09/09 17:48:38 [request.2687:4] Currently on air.
2024/09/09 17:48:38 [lang:3] API nextsong - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/nextsong' with body:
2024/09/09 17:48:38 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {"song_id":"d867c90e776a3afebe1b8e122fb38f2a","artist":"Dani","title":"Un p'tit boy c'est gentil (1970)","playlist_id":"17","media_id":"19267"}
2024/09/09 17:48:38 [lang:3] API nextsong - Response (200): annotate:title="A.L _ L.A",artist="Éric Morel",duration="173.61",song_id="4b2f87ba02a7360a719db709764945cd",media_id="19024",playlist_id="21":media:Vedette/éric_morel_-a.l___l.a.mp3
2024/09/09 17:48:38 [request.2688:4] Pushed ["annotate:title="A.L _ L.A",artist="Éric Morel",duration="173.61",song_id="4b2f87ba02a7360a719db709764945cd",media_id="19024",playlist_id="21":media:Vedette/éric_morel-a.l___l.a.mp3";...].
2024/09/09 17:48:38 [request.2688:4] Resolving "annotate:title="A.L _ L.A",artist="Éric Morel",duration="173.61",song_id="4b2f87ba02a7360a719db709764945cd",media_id="19024",playlist_id="21":media:Vedette/éric_morel-a.l___l.a.mp3" (timeout 20s)...
2024/09/09 17:48:38 [request.2688:4] Pushed ["media:Vedette/éric_morel-a.l___l.a.mp3";...].
2024/09/09 17:48:38 [request.2688:4] Resolving "media:Vedette/éric_morel-a.l___l.a.mp3" (timeout 20s)...
2024/09/09 17:48:38 [request.2688:4] Pushed ["/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3";...].
2024/09/09 17:48:38 [decoder.video.metadata:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.ogg.metadata:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.image.metadata:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3"!
2024/09/09 17:48:38 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3"!
2024/09/09 17:48:38 [decoder.id3:4] Unsupported file extension for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3"!
2024/09/09 17:48:38 [decoder.flac.metadata:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [metadata.mp4:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3"!
2024/09/09 17:48:38 [metadata.flac:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.taglib:4] Unsupported file extension for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3"!
2024/09/09 17:48:38 [decoder.ogg:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.ffmpeg:4] Unsupported file extension for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3"!
2024/09/09 17:48:38 [decoder.mad:4] Unsupported file extension for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3"!
2024/09/09 17:48:38 [decoder.flac:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.mp4:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.aac:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.midi:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.srt:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.aiff:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder.wav:4] Unsupported MIME type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": audio/mpeg!
2024/09/09 17:48:38 [decoder:4] Available decoders: ffmpeg (priority: 10), mad (priority: 1), image (priority: 1)
2024/09/09 17:48:38 [decoder:4] Trying decoder "ffmpeg"
2024/09/09 17:48:38 [decoder.ffmpeg:3] Requested content-type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": {audio=pcm(stereo)}
2024/09/09 17:48:38 [decoder.ffmpeg:3] FFmpeg recognizes "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3" as audio: {codec: mp3, 44100Hz, 2 channel(s)}
2024/09/09 17:48:38 [decoder.ffmpeg:3] Decoded content-type for "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-a.l___l.a.mp3": {audio=pcm(stereo)}
2024/09/09 17:48:38 [decoder:4] Selected decoder ffmpeg for file "/var/azuracast/stations/radio_des_festivals/media/Vedette/éric_morel-_a.l___l.a.mp3" with expected kind {audio=pcm(stereo)} and detected content {audio=pcm(stereo)}
2024/09/09 17:48:38 [next_song:4] Queued 1 requests
2024/09/09 17:48:38 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {"song_id":"facd4f25e9873385dc3cc1564a8713ff","artist":"Freddy Fender","title":"Sweet Summer Day","playlist_id":"14","media_id":"20351"}
2024/09/09 17:48:38 [lang:3] API feedback - Response (200): true
2024/09/09 17:48:39 [lang:3] API feedback - Response (200): true
2024/09/09 17:49:01 [server:4] New client unix socket "".
2024/09/09 17:49:01 [server:4] Client unix socket "" disconnected.
!!
Return to live feed after 3 seconds of streamer silence - not even long enough for encoder to disconnect!
Returns with metadata from previous song ? Shouldn't it display XXX is live?
Returns to normal operations at end of voice segment with buffer restored to 30 seconds
!!
2024/09/09 17:49:11 [live_fallback:3] Switch to insert_metadata with transition.
2024/09/09 17:49:11 [source:4] Source replay_metadata.160 gets down.
2024/09/09 17:49:11 [lang:3] executing transition to live
2024/09/09 17:49:11 [lang:3] Inserting last live meta: [("pass", "XXXX:YYYY"), ("metadata_url", "https://radiodesfestivals.ca"), ("title", "Honoré Godbout - Y'a trop d'amour autour de moi - Speedy en ondes"), ("is_live", "true")]
2024/09/09 17:49:11 [source:4] Source replay_metadata.161 gets up with content type: {audio=pcm(stereo)}.
2024/09/09 17:49:11 [replay_metadata.161:3] Content type is {audio=pcm(stereo)}.
2024/09/09 17:49:11 [next_song:4] Finished with "/var/azuracast/stations/radio_des_festivals/media/Country Anglo/Freddy Fender - Sweet Summer Day.mp3".
2024/09/09 17:49:11 [request.2687:4] Request finished.
2024/09/09 17:49:11 [lang:3] API feedback - Sending POST request to 'http://127.0.0.1:6010/api/internal/1/liquidsoap/feedback' with body: {"title":"Honoré Godbout - Y'a trop d'amour autour de moi - Speedy en ondes"}
2024/09/09 17:49:11 [lang:3] API feedback - Response (200): true
2024/09/09 17:50:01 [server:4] New client unix socket "".
2024/09/09 17:50:01 [server:4] Client unix socket "" disconnected.
The text was updated successfully, but these errors were encountered: