如何使用 nginx 缓存实时音频流(audio/mpeg)?
Posted
技术标签:
【中文标题】如何使用 nginx 缓存实时音频流(audio/mpeg)?【英文标题】:How to use nginx to cache the real-time audio stream(audio/mpeg)? 【发布时间】:2014-06-28 08:21:42 【问题描述】:现在我有一个实时音频流,比如this one,但是如果有成千上万的用户直接访问它,过载会很严重,流服务器会崩溃。
有人说使用nginx的缓存是一种可能的解决方案,有人知道关于hwo配置nginx服务器的详细信息吗?
顺便说一下,流的内容类型是“audio/mpeg”。
非常感谢。
【问题讨论】:
【参考方案1】:Nginx 无法缓存渐进式音频流。 Nginx 的缓存是为缓存正常的文件响应而构建的。如果响应永远不会完成(对于实时渐进式音频流来说不会),那么就没有任何东西可以缓存。此外,如果 10k 用户对于您的音频服务器来说太多了,那么对于 Nginx 来说也可能太多了。
如果您确实有 10,000 个同时听众,那么您需要一个 CDN。有很多可供选择,具体取决于您的具体需求和预算限制。
如果您想自己进行托管,则需要一些服务器和软件,例如Icecast。
【讨论】:
谢谢布拉德。如果 Nginx 无法缓存渐进式音频流。 CDN 是如何做到的?在我看来,CDN 也只能缓存普通的静态文件。 @luckyee 对于任何流媒体服务器,都不会缓存任何内容。数据在进入时被缓冲并发送给客户端。大多数 CDN 支持在这种模式下运行。 Icecast 可能是一个不错的选择,如果它确实支持渐进式音频流。 @luckyee 这就是 Icecast 所做的一切。 很抱歉又给您添麻烦了。由于我的英文不好,看了Icecast的文档后,我还有两个问题here。谢谢。以上是关于如何使用 nginx 缓存实时音频流(audio/mpeg)?的主要内容,如果未能解决你的问题,请参考以下文章
如何从WDM流音频源(Realtek HD Audio)捕获
Android 9 Audio系统笔记:AudioFlinger音频流处理流程
Web Audio API:当使用媒体流时,Firefox 中的 FFT 数据与 chrome 中的不同?