Ian A. Underwood
2005-Feb-03 09:44 UTC
[Icecast] Stream drops during handoff. Suggestions?
Sorry if this has been asked before, but I've searched high and low for the last couple days for an answer. An Internet radio station I DJ for is using Shoutcast and MP3, but we are considering moving to an Icecast/Ogg Vorbis combination instead. We work in 3-hour shifts. When we hand off, the DJ on-stream stops teh encoder, shouts "go" on IRC, and the DJ in line starts his encoder. However, one thing I'm finding in my testing is that during a simulated handoff on a test server, stream listeners are disconnected. The only workaround I've found for this is to run a near-silent failover stream which fills in the blank spot until the main encoder is re-started. Is this solution the only way to go about preserving the stream between shows? Is it possible to store a short vorbis file on the server which can provide the silence instead of running a backup stream to it? Is there something I totally missed? -I
I think you've got the right idea. The way I see to do it is set up a quiet backup stream. If you use ogg, make sure it isn't silence. You'll need to give it -90 dB white noise. Basically random 0, +1 an -1 values. The backup stream can be served form the same computer as icecast. Probably the easiest way is to use ezstream to send the silence file repeatedly. Since you aren't re-encoding, it won't take much cpu at all. Just be sure to check on ezstream from time to time. It inevitably stops working eventually for me. Joel Ian A. Underwood wrote:> Sorry if this has been asked before, but I've searched high and low for > the last couple days for an answer. > > An Internet radio station I DJ for is using Shoutcast and MP3, but we > are considering moving to an Icecast/Ogg Vorbis combination instead. We > work in 3-hour shifts. When we hand off, the DJ on-stream stops teh > encoder, shouts "go" on IRC, and the DJ in line starts his encoder. > > However, one thing I'm finding in my testing is that during a simulated > handoff on a test server, stream listeners are disconnected. The only > workaround I've found for this is to run a near-silent failover stream > which fills in the blank spot until the main encoder is re-started. > > Is this solution the only way to go about preserving the stream between > shows? Is it possible to store a short vorbis file on the server which > can provide the silence instead of running a backup stream to it? Is > there something I totally missed? > > -I > _______________________________________________ > Icecast mailing list > Icecast@xiph.org > http://lists.xiph.org/mailman/listinfo/icecast
On Thu, 2005-02-03 at 17:44, Ian A. Underwood wrote:> An Internet radio station I DJ for is using Shoutcast and MP3, but we > are considering moving to an Icecast/Ogg Vorbis combination instead. We > work in 3-hour shifts. When we hand off, the DJ on-stream stops teh > encoder, shouts "go" on IRC, and the DJ in line starts his encoder. > > However, one thing I'm finding in my testing is that during a simulated > handoff on a test server, stream listeners are disconnected. The only > workaround I've found for this is to run a near-silent failover stream > which fills in the blank spot until the main encoder is re-started. > > Is this solution the only way to go about preserving the stream between > shows? Is it possible to store a short vorbis file on the server which > can provide the silence instead of running a backup stream to it? Is > there something I totally missed?To prevent dropping listeners when a stream stops you have to send them to some other mountpoint. As already suggested, the current mechanism would involve playing a prerecorded file via something like ezstream and move listeners to that mountpoint on exit and moving them back off it when the next source connects. One solution is to have the following /backup.ogg fed from ezstream /live.ogg external mountpoint for listeners, local relay /dj1.ogg DJ 1 mountpoint /dj2.ogg DJ 2 mountpoint /live.ogg starts as a relay of /backup.ogg /dj1.ogg fallback-override 1, fallback-mount /backup.ogg /dj2.ogg fallback-override 1, fallback-mount /backup.ogg DJ 1 connects, relay takes stream from here now DJ 1 disconnects, relay takes stream from /backup.ogg listeners will always be on /live.ogg I do have some work in my branch for fallback to file, that seems to work as you would expect from a fallback to mountpoint. Feel free to test it if you want. For such cases I guess you would have a /live.ogg which would fallback to file and have DJs connecting with mountpoint /live.ogg. karl.