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

标签 http audio streaming http-status-code-404 icecast

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

这是普通的 header (某些数据已***):

    http://***:14534/***.mp3

GET /***.mp3 HTTP/1.1
Host: ***:14534
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

HTTP/1.1 200 OK
Server: nginx/1.4.1
Date: Tue, 23 Jul 2013 21:22:00 GMT
Content-Type: audio/mpeg
Transfer-Encoding: chunked
Connection: keep-alive
icy-br: 192
ice-audio-info: bitrate=192;samplerate=44100;channels=2
icy-description: MP3 192 Kbps
icy-genre: ***
icy-name: ***
icy-pub: 1
icy-url: ***
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache

因此,流有时只播放约一分钟或更短的时间,有时仅播放几秒钟并停止。 404错误的可能原因是什么?在其他设备中,测试工作稳定。上网速度很好。路由器会引起这种情况吗?此外,IceCast可能需要一些特殊的HTTP请求 header (如果不存在,则为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

关于http - IceCast 2.3.2-kh29服务器流404错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17821926/

相关文章:

http - AWS CloudFront, `Vary` header 和内容协商

java - SocketTimeoutException 和 Jetty 的问题

java - Java:将4个单独的音频字节数组组合成单个wav音频文件

c# - 捕获当前正在播放的声音

c# - BASS.net C# : What does spectogram image represent that outputted by CreateSpectrum3DVoicePrint Method?

audio - Xamarin形成流式传输并录制音频

android - HttpClient 在执行方法时失败

jquery - 让 Node.js 中的 http.request 适用于浏览器

c# - 流写入滞后于我的 GUI

python - 如何使用 Streaming API 通过 Twitter 跟踪 400 个关键字?