Icecast和Darkice的高音频延迟

时间:2013-06-16 13:10:21

标签: audio-streaming icecast low-latency internet-radio

我已经在我的ubuntu机器上成功安装了icecast和darkice,并且能够在我的局域网上直播。但令我失望的是它有15秒到20秒的延迟。这是非常糟糕的表现。我不认为这是因为我的局域网连接,因为即使我试图在同一台ubuntu机器上听也有延迟!

我试图将icecast配置为没有突发大小,这意味着没有缓冲,这有助于我将延迟减少到大约6秒到8秒。 所以,如果您有任何建议或非常好的配置值,那将对我有很大的帮助。

P.S我正在播放的格式是mp3。有人建议我应该使用opus编解码器,但我不认为icecast或darkice支持它。

2 个答案:

答案 0 :(得分:7)

这不是性能差......这是故意的,因此一旦播放开始,客户端就不会遇到重新缓冲。互联网广播服务器不是为低延迟而构建的。

延迟有很多来源:

  • 捕获缓冲区(<500ms)
  • 编码缓冲区(〜250ms-1s,具体取决于编解码器)
  • 编码器到服务器的网络传输和缓冲区(&lt; 10ms)
  • 服务器缓冲区(您禁用的缓冲区,通常设置为1MB,可能需要很长时间,具体取决于比特率)
  • 服务器到客户端网络传输和缓冲区(通常为<10ms-1s,移动设备的时间更长)
  • 客户缓冲区(变化很大,但典型的是2s)
  • 客户端播放缓冲区(<500毫秒)

您可以看到的最大的是服务器缓冲区。你已经消除了这一点,这就是你能做的一切。如果你想要一些延迟较低的东西,你需要一种不同的技术。

答案 1 :(得分:1)

尝试使用Icecast-kh https://karlheyes.github.io/

根据我的经验,它提供了更少的延迟,我不知道为什么,如果有人会解释,也许会有一个较小的服务器缓冲区会很高兴。