[icecast-dev] Streaming with ices2/linux

Melanie melanie at t-data.com
Wed Nov 5 16:53:34 PST 2003


  I have observed a problem when streaming with ices2. When only silence is 
transmitted, like pauses in an interview, the bitrate drops to 0. This 
happens even when a minimum bitrate is set.
Now, assume there is a half block of audio ready. Now the level drops to 
silence, or near silence, possibly because the person is thinking about an 
answer for a while.
This will cause the partial block to not be transmitted in time for the 
client to produce continuos audio. Also, the client can, if this happens 
more often, incur some very serious lag over time.

What needs to be done, IMHO, is to guarantee that data is sent at least as 
fast as the playback of the data will take. So, if there is silence, 
smaller blocks must be sent, because a length of music and an equal length 
of silence will be encoded in a different number of bytes. Each block of 
data being collected, waiting for transmission, neds a deadline attached to 
it which is the time between the sending of the last block and the time it 
would finish playing. So, if a block is sent that encodes 2 seconds of 
audio, the next block must be sent no more than 2 seconds later. Even if 
it's only the few bytes needed to tell the client to play another 2 seconds 
of silence.

I haven't read the code, but it appears that blocks are sent when a certain 
byte count is reached. This is fine for continuous audio, but if there is 
silence involved, it's just not enough.

A functioning minimum bitrate would also solve this problem, at the cost of 
bandwidth, but that's not available either. The minimum bitrate parameter 
is seemingly ignored, even though the ices2 startup messges do print it 
out, meaning it's recognized from the config file.

This becomes a major annoyance when anything other than continuous music is 
sent, even with normal talk, lag time can build up and bits of disjoint 
audio are heard at the beginning of a sentence. This is probably the tail 
of the last sentence, encoded and buffered, but not sent out until there is 
more audio to send.

--- >8 ----
List archives:  http://www.xiph.org/archives/
icecast project homepage: http://www.icecast.org/
To unsubscribe from this list, send a message to 'icecast-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.

More information about the Icecast-dev mailing list