如何在IceCast服务器更改流时连续传输音频

时间:2013-06-07 09:56:25

标签: streaming audio-streaming mediaelement.js icecast

问题: 通过Icecast挂载点流式传输实时音频。在服务器端,当现场节目停止时,服务器将恢复播放音乐播放列表(实际挂载点保持/live)。但是,当直播流停止时,音频播放器也会停止。开发工具表示请求已被取消。播放器必须是HTML5,所以没有Flash。

Mountpoint:http://198.154.112.233:8716/

Stream:http://198.154.112.233:8716/live

我试过了:

  • 听取流结束,并告诉玩家重新连接。但是,当流中断时,jPlayer和Mediaelement.js API上的所有事件都不会返回任何内容。
  • 在处理幕后播放列表切换器时,请忙于联系服务器主机以寻求建议。

我想找到一个客户端解决方案。 websockets / webrtc可以通过保持连接打开来解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

您的问题不是客户端问题,而是您处理编码的方式。客户端没有任何更改可以妥善解决此问题。

您使用的流配置是编码器使用磁盘上的文件作为备份流。不幸的是,它听起来不是重新编码和拼接(并且如果需要,匹配采样率和通道),它只是发送原始文件数据。

这在某些时候有效,因为MPEG解码器通常容忍损坏的流,并且会重新同步。但是,有时流不通,解码器放弃了。如果采样率或通道数发生变化,解码器也会经常停止。 (比特率变化通常不是一个大问题。)

要解决您的问题,您必须与您的主持人联系。

答案 1 :(得分:0)

是的,如果播放列表和实时流不是相同的编解码器,这是一个问题。 Liquidsoap等其他工具为我解决了这个问题,并提供了更多功能: savonet.sourceforge.net