[icecast] *Real* real time streaming (no delay/latency)?

Michael Smith msmith at xiph.org
Thu Feb 5 02:11:20 UTC 2004



On Thursday 05 February 2004 12:55, Jørgen Elgaard Larsen wrote:
> Hello
>
> Does anyone have experience with _real_ real time streaming - i.e. with
> very little delay/latency?
>
> I need to stream from point A to point B in near-CD quality via a 100
> Mbit network. That is easily done using icecast. But here is the tricky
> bit:
>
> I want as little delay in the signal as possibble - preferrably below 50ms!
>
> I have made a test setup encoding on and serving from an 800 MHz Pentium
> II with debian GNU/Linux, icecast 2 and IceS 2. That gave me a delay of
> 1 or 2 seconds. I need it to be lower.
>

There are 3 points at which significant latency (other than the actual network 
latency) is added in an icecast-style configuration:
  * Encoder
  * Server
  * Client

I don't think the icecast latency is particularly large. Both the encoder and 
client latency are likely to be significant. Both can be reduced without 
great difficulty.

Encoder-side: because of the way the ogg/vorbis libraries are designed, the 
natural output gives a relatively high latency (on the order of 200-300 ms is 
typical at moderate bitrates). This is easily reduced (with the penalty being 
slightly higher bitrates) by flushing the ogg stream after each vorbis 
packet. You should be able to hack ices2 to do this very easily - just 
replace calls to ogg_stream_pageout() with calls to ogg_stream_flush(). 

Client side: does the client do any buffering? Obviously, if it does, this is 
a major contribution to latency. Make sure it doesn't do any. I don't know 
what client you're using.

I suspect < 50 ms latency will be very difficult, but ~100 ms shouldn't be too 
hard.

Mike

--- >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-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 mailing list