12

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

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

PS我流式传输的格式是mp3。有人建议我应该使用 opus 编解码器,但我认为 icecast 或 darkice 不支持它。

4

1 回答 1

11

这不是性能不佳......这是故意的,以便客户端在播放开始后不会经历重新缓冲。Internet 广播服务器不是为低延迟而构建的。

延迟的来源有很多:

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

如您所见,其中最大的是服务器缓冲区。你已经消除了它,这就是你所能做的。如果你想要更低延迟的东西,你需要一种不同的技术。

于 2013-06-17T15:20:50.520 回答