我目前有一个应用程序通过UDP从远程源接收实时原始PCM数据。我想通过一个简单,直接的HTML5标签将其流式传输到Web浏览器。在研究这个项目的过程中,我偶然遇到过IceCast,我可以将其配置为接收原始PCM并提供MPEG音频流,从而满足我的需求。然而,对于IceCast来说,这可能会或可能不会有用,但我想实现我自己的自定义解决方案。
因此,用更具体的术语来表达这个问题,解决这个问题就像LAME一样简单,当原始PCM数据到达并通过HTTP传递它时对其进行编码?我认为这是一个CGI / FastCGI应用程序,但我绝不会坚持这种形式的解决方案。 IceCast幕后还有其他魔法吗?最后,进行健全性检查:没有特别的“流/文件头”,我需要先发送,对吗?
答案 0 :(得分:1)
不需要任何额外的标头。但是,Icecast正在做的主要额外事情是CGI / FCGI应用程序无法做到(至少不是很好)将流分发给多个并发侦听器。这部分做得很好很棘手;除非有令人信服的理由避免使用Icecast,否则我建议你使用Icecast。
答案 1 :(得分:0)
是的,您可以使用ogg进行流媒体播放。它创建页面,这允许流YET仍然使用文件容器。 但这又意味着firefox和chrome。实际上有一个音频api javascript。如果您在客户端请求块和缓冲区中的pcm数据并将其提供给音频api,它可以做到这一点。该api用于客户端的音频处理。再一次期待超级惊人的速度。 https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html