Http IceCast 2.3.2-kh29服务器流404错误

Http IceCast 2.3.2-kh29服务器流404错误,http,audio,streaming,http-status-code-404,icecast,Http,Audio,Streaming,Http Status Code 404,Icecast,我正在使用MediaPlayer类从Android应用程序中的IceCast 2.3.2-kh29服务器加载MP3流。 玩得很好,但有时会停下来。如果在IcyStreamMeta类中看到ID3标记的服务器响应,则这种情况下会出现404错误。 在Windows7:Firefox和其他浏览器中也会发生这种情况 以下是正常的标题(一些数据***ed): 因此,流有时只播放大约一分钟或更少,有时播放几秒钟并停止。404错误的可能原因是什么?在其他设备中,有稳定工作的测试。互联网速度很快。路由器会导致这样

我正在使用MediaPlayer类从Android应用程序中的IceCast 2.3.2-kh29服务器加载MP3流。 玩得很好,但有时会停下来。如果在IcyStreamMeta类中看到ID3标记的服务器响应,则这种情况下会出现404错误。 在Windows7:Firefox和其他浏览器中也会发生这种情况

以下是正常的标题(一些数据***ed):

因此,流有时只播放大约一分钟或更少,有时播放几秒钟并停止。404错误的可能原因是什么?在其他设备中,有稳定工作的测试。互联网速度很快。路由器会导致这样的事情吗?另外,IceCast可能需要一些特殊的HTTP请求头(如果它们不存在,则给出404)?或者在某些情况下是内部服务器错误

So, from WireShark:
2973    53.630385000    SERVER'S IP 192.168.100.6   TCP 1466    14534 > 59847 [ACK] Seq=1284017 Ack=1 Win=63 Len=1412
2976    53.636352000    SERVER'S IP 192.168.100.6   TCP 1157    14534 > 59847 [PSH, ACK] Seq=1285429 Ack=1 Win=63 Len=1103
2978    53.671606000    SERVER'S IP 192.168.100.6   TCP 60  14534 > 59847 [PSH, ACK] Seq=1286532 Ack=1 Win=63 Len=5
2980    53.678606000    SERVER'S IP 192.168.100.6   TCP 60  14534 > 59847 [FIN, ACK] Seq=1286537 Ack=2 Win=63 Len=0

问题是您的分块编码。您正在通过Nginx代理流,Nginx正在“修复”输出以与HTTP/1.0兼容。不要那样做

您可以尝试在Nginx配置中关闭分块编码:

chunked_transfer_encoding off

当你说它停止时,具体发生了什么?服务器是否断开了客户端的连接?客户端是否与服务器断开连接?你能上传一个实际发生问题的数据包捕获吗?我不知道,如何确定?导致FileNotFoundException或404。在您的示例中,有一个200。404不能在中途发生。听起来你的源客户端正在随机断开连接。如果看一下IceCast的bug修复,会有一些404错误的情况,所以可能是其他原因。我通过看到ID3标签(每5秒加载一次)得到了这个错误。请查看Wireshark,了解正在发送的原始数据包。我过去在Icecast和Android上遇到过麻烦,但不同版本的Android都有不同。此外,一些设备实现硬件编解码器,这意味着它们在支持某些类型的流方面可能有所不同。谢谢。服务器不是我的,我是Android应用程序的开发者。我会试着解决这个问题。如果发生这样的事情,我还可以测试其他MP3流。分块编码是独立于客户端操作系统和播放器而导致这些错误的,还是特别是Android问题?@Tramway11,试试看。那是我的一台带有定制软件的服务器。应该没有分块编码。谢谢。我试试看。上述错误并不总是发生,但有时会发生。因此,如果没有“分块传输编码”,服务器需要给出内容长度。如果是MP3流,当文件没有结尾时,这将是什么情况?如果chunked_transfer_encoding处于启用状态,是什么使服务器提供0长度的chunk?到目前为止,您的流正常工作。。。
chunked_transfer_encoding off