2

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

挂载点:http://198.154.112.233:8716/

溪流:http://198.154.112.233:8716/live

我试过了:

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

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

4

2 回答 2

1

您的问题不是客户端,而是您如何处理编码。客户端没有任何更改可以适当地解决此问题。

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

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

要解决您的问题,您必须联系您的房东。

于 2013-06-07T15:01:45.517 回答
1

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

于 2013-07-02T22:32:41.253 回答