实时音频流到移动设备 - 动态播放速度

时间:2014-04-30 06:35:39

标签: audio stream real-time audio-streaming playback

以下是该方案:

我正在使用Nicecast(在OS X上)编码MP3流(来自麦克风输入),并将其发送到运行Icecast2流媒体服务器的Ubuntu计算机。流媒体服务器通过Wi-Fi路由器连接到我的LAN(而不是互联网)。通过以下方式收听流:iOS设备,Android设备,Windows电话,Windows计算机,Mac计算机等(大多数使用VLC)。

从麦克风拾音器到通过客户端扬声器播放的音频的延迟大约 1-2秒。这对我的申请来说没问题。

但是,当网络拥塞(或客户端的CPU忙于执行其他操作或任何原因)时,流停止(中断)几秒钟,然后当所有内容恢复为&时#34;正常",Icecast发送大量数据以便再次实时恢复。客户端的缓冲区接收到这一数据并存储它(应该如此)并在它停止的地方再次开始播放(这也很好,因为这意味着没有音频内容丢失或错过,这就是我需要的我的申请)。但现在延迟约为 4-5秒

我需要将延迟保持在1-2秒左右。所以我想如果我能将播放速度加快到1.5倍,例如几秒钟之后,我们就会回到1-2秒的延迟。换句话说,如果缓冲区有' x'其中的数据量,以1.0倍的速度播放。如果缓冲区到达'数据量或更多,以1.5倍的速度播放,直到缓冲区恢复为“x'数据量。一种" 动态播放速度" (这有更好的(或更正确的)名称吗?)。

所以,我的问题:

  1. 我可以使用VLC(客户端)提供此解决方案吗?
  2. 是否有其他流客户端可以很好地处理这个问题? (尤其是那些在多个平台上工作的人)
  3. 还是有其他流媒体平台来处理这个问题 自动,还是稍加配置?
  4. 任何想法&评论将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道可以配置为执行此操作的播放器。

您可以使用HTML5构建简单的内容,如[here](variable speed control for audio playback in the browser?)所述。

Flash doesn't support变速播放。