问题
I have successfully installed icecast and darkice on my ubuntu machine and was able to stream live on my lan. but to my disappointment it has a 15sec to 20sec delay.This is very poor performance. I don't think it is because of my lan connection because even when i tried to listen in that same ubuntu machine there was still a delay!
I have tried to configure icecast to have no burst-size which means there will be no buffering,this helped me reduce the delay to around 6sec to 8sec. So please if you have any suggestions or very good configuration values it would be of great help to me.
P.S the format i am streaming is mp3. someone suggested that i should use opus codec but i don't think icecast or darkice support it.
回答1:
This is not poor performance... it is deliberate so that clients don't experience re-buffering once playback has begun. Internet radio servers are not built for low-latency.
There are many sources of the delay:
- Capture buffer (<500ms)
- Encoding buffer (~250ms-1s depending on codec)
- Encoder-to-Server Network Transfer and Buffer (<10ms)
- Server buffer (the one you disabled, often set at 1MB which can be a long time depending on bitrate)
- Server-to-Client Network Transfer and Buffer (<10ms-1s typically, longer times for mobile)
- Client buffer (widely variable, but 2s is typical)
- Client playback buffer (<500ms)
The biggest of these as you can see is the server buffer. You have eliminated that, and that is all you can do. If you want something with lower latency, you need a different technology.
回答2:
Try using Icecast-kh https://karlheyes.github.io/
From my experience it gives less latency, I am not sure why, will be glad if someone will explain that, maybe it has a smaller server buffer.
来源:https://stackoverflow.com/questions/17133689/high-audio-latency-with-icecast-and-darkice