来自网络和shoutcast的实时音频流

时间:2014-02-03 09:50:45

标签: audio-streaming webrtc shoutcast

我想使用麦克风通过网络浏览器录制音频,并希望将其传输到我的shoutcast服务器。这样用户就可以立即收听直播。有没有办法做到这一点。也可以在iPhone上播放。

在网上搜索了很多东西,却找不到确切的东西。如果有任何可行的方法,请告诉我。

已使用WebRTC音频广播script。哪个正在通过网络工作,但iPhone上没有该流。每当我要联合一个房间时,显示器就无法播放音频。

3 个答案:

答案 0 :(得分:1)

我过去做过这个。您可以在http://demo.audiopump.co:3000处尝试。

当前在浏览器中获取音频的唯一方法是使用getUserMedia和Web Audio API。这可以获得PCM样本。遗憾的是,目前无法以编程方式使用浏览器编解码器。

我通过将PCM样本发送到服务器来处理此问题。现在,我不会将它们作为32位浮点数发送,这是它们所处的格式。我检测Web套接字的缓冲区大小并相应地调整位深度。如果有足够的带宽,我将发送16位立体声。否则我可以下降到8位单声道。在服务器上,样本将被转换回32位浮点数并使用Ffmpeg进行编码。

从那里,数据被实时发送到SHOUTcast服务器。

答案 1 :(得分:0)

使用RecordRTC录制音频;使用ffmpeg.js或ffmpeg-asm.js将WAV转换为mp3或ogg;然后你可以向shoutcast服务器发出HTTP-PUT请求来上传低尺寸的ogg;然后shoutcast服务器可以将它广播到所有相关的广播电台。

P.S。 “低音”我的意思是,1分钟音频;你可以得到700kb到1024kb ogg。

P.S。我将在我的github存储库中添加一些演示;很快。


<强>更新

可以使用Google语音识别API将语音转换为文本;该文本可以通过socketio流式传输到nodejs服务器;您可以在其中使用ffmpeg进行文本到语音转换并编码为ogg或其他格式;编码ogg可以转发(使用PUT请求)到shoutcast服务器。

您可以尝试Translator.js

答案 2 :(得分:-1)

是的,我们可以使用AVAudioSession录制实时音频流。请仔细阅读Apple文档以获取更多详细信息。

https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html