1

我目前有一个应用程序,它通过 UDP 从远程源接收实时的原始 PCM 数据。我想通过一个简单、直接的 HTML5 标记将其流式传输到 Web 浏览器。在研究这个项目时,我多次遇到 IceCast,据我所知,它可以配置为接收原始 PCM 并提供 MPEG 音频流,从而满足我的需求。但是,无论这可能与 IceCast 一起工作或不工作,我都想实现我自己的自定义解决方案。

所以,用更具体的术语来表述这个问题,解决这个问题是否像 LAME 一样简单地在原始 PCM 数据到达时对其进行编码并通过 HTTP 传递它?我认为这可以作为 CGI/FastCGI 应用程序工作,但我绝不会拘泥于这种形式的解决方案。IceCast 的幕后是否还有其他魔法?最后,进行完整性检查:我不需要先发送特殊的“流/文件头”,对吗?

4

2 回答 2

1

不需要任何额外的标题。然而,Icecast 正在做的、CGI/FCGI 应用程序无法做的主要额外事情(至少,不是很好)是将流分发给多个并发侦听器。这部分很难做好;我建议您使用 Icecast,除非有令人信服的理由避免使用它。

于 2012-07-19T00:26:23.787 回答
0

是的,您可以使用 ogg 流式传输 pcm。它创建页面,这允许流式传输仍然使用文件容器。但这又意味着只有 firefox 和 chrome。实际上有一个音频 api javascript。如果您在客户端请求块和缓冲区中的 pcm 数据并将其提供给音频 api,它可以解决问题。此 api 用于客户端的音频处理。再次不要期望超级棒的速度。https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html

于 2012-12-17T10:26:05.850 回答