冰淇淋http连接延迟30秒



我正在运行冰淇淋服务器(2.4.3),并且经历了很长的"首先字节"。这很奇怪,因为这似乎不是来自玩家(例如Mplayer),而是在使用HTML5音频时。开始播放音频需要30秒至120秒。

我认为这不是缓冲问题,因为在此期间我似乎没有回到任何字节。例如,如果我用详细标志运行curl命令:

~ben ~: curl http://radio.example.com:8000/radio.mp3 -v
*   Trying XX.XX.XX.XXX...
* TCP_NODELAY set
* Connected to radio.example.com (XX.XX.XX.XXX) port 8000 (#0)
> GET /radio.mp3 HTTP/1.1
> Host: radio.example.com:8000
> User-Agent: curl/7.51.0
> Accept: */*
>

它将以这种方式坐下至少28秒钟,然后才能看到任何字节进来。相反,如果我运行mplayer:

~ben ~: mplayer http://radio.example.com:8000/radio.mp3
MPlayer 1.3.0-4.2.1 (C) 2000-2016 MPlayer Team
Can't init Apple Remote.
Playing http://radio.example.com:8000/radio.mp3.
Resolving radio.example.com for AF_INET6...
Couldn't resolve name for AF_INET6: radio.example.com
Resolving radio.example.com for AF_INET...
Connecting to server radio.example.com[XX.XX.XX.XXX]: 8000...
Cache size set to 320 KBytes
Cache fill:  0.00% (0 bytes)
ICY Info: StreamTitle='';
Cache fill:  5.00% (16384 bytes)
ICY Info: StreamTitle='';
Cache fill: 10.00% (32768 bytes)
ICY Info: StreamTitle='';
Cache fill: 15.00% (49152 bytes)
ICY Info: StreamTitle='';
ICY Info: StreamTitle='';

Audio only file format detected.
==========================================================================
Requested audio codec family [mpg123] (afm=mpg123) not available.
Enable it at compilation.
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 57.24.102 (internal)
AUDIO: 44100 Hz, 2 ch, floatle, 128.0 kbit/4.54% (ratio: 16000->352800)
Selected audio codec: [ffmp3float] afm: ffmpeg (FFmpeg MPEG layer-3 audio)
==========================================================================
AO: [coreaudio] 44100Hz 2ch floatle (4 bytes per sample)
Video: no video
Starting playback...

它可以缓冲并在几秒钟内开始播放。

冰出色config

这是我认为相关配置

<icecast>
    <limits>
        <clients>100</clients>
        <sources>2</sources>
        <queue-size>102400</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>1</source-timeout>
        <burst-size>943718</burst-size>
        <mp3-metadata-interval>4096</mp3-metadata-interval>
    </limits>

    <mount>
        <mount-name>/radio.mp3</mount-name>
        <password>*****************</password>
        <bitrate>128</bitrate>
        <type>audio/mpeg</type>
        <subtype>mp3</subtype>
        <hidden>0</hidden>
        <fallback-mount>/whitenoise.mp3</fallback-mount>
        <fallback-override>1</fallback-override>
    </mount>
</icecast>

尝试修复

我已经在几个不同的版本上尝试过,包括2.3.3,2.3.3-kh-11,2.4.0-kh4。过去,我已经找到了与KH分支合作的正常工作,但是我无法让后备安装座与KH分支一起工作。我可能只是放弃,试图倒下那个兔子洞。我还尝试使用所有爆发和缓冲型配置的摆弄,但是这个问题似乎与这些配置无关。

用完了我的选择后,我只是试图从另一台计算机流式传输,并注意到问题没有发生。我要求其他人尝试一下,他们确认他们没有在流上看到这个问题。这使我相信问题在我的计算机上(在这种情况下是流媒体客户端)。我怀疑它试图升级连接到TLS加密连接(以前是此域发生的),但不确定。无论哪种方式,iCecast都不是问题。

我将猜测有延迟问题的计算机可能正在运行某种网络防病毒或反向代理。这些可能会弄乱标头,并且经常想要"扫描"。尽可能多的HTTP连接。因此,他们正在缓冲HTTP响应,这导致了延迟。

过去,我已经看到公司网络过滤发生了这种情况。

最新更新