我有几个关于 mp3 广播流设置的问题
I have a few questions about the setup of an mp3 radio stream
所有这些有什么区别?它们的含义是什么?
/;stream.mp3
[; 分号在 / 斜杠后究竟表示什么?]
另外,如果我去掉 stream.mp3
,只在斜杠 /;
后面留下分号,或者如果我保留 `stream.mp3 附件,有什么区别?
/stream
【这个怎么只有stream
,就这样了。 [/
斜杠后没有 ;
分号,也没有 stream.mp3
?
为什么一个流可以没有分号工作,为什么一个流需要分号?
http://91.223.18.205:8000/c11_4?
[icecast]为什么这个最后有一个?
问号[那是什么意思?]
SHOUTcast 从与流完全相同的端口和路径为其管理界面提供服务。例如,假设我在 198.51.100.100
上的端口 8000
上有一个 SHOUTcast 服务器 运行。如果我在浏览器中转到以下内容...
http:///198.51.100.100:8000/
...我将看到 SHOUTcast 管理页面,我可以在其中登录和断开连接等等。但是,如果我使用媒体播放器(例如 VLC 或 Winamp)访问相同的 URL,我会听到一个流。
SHOUTcast 根据 User-Agent
请求 header 知道给我哪个。此 header 表示客户端正在尝试连接到服务器。当我连接到我的浏览器时,它可能看起来像这样:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36
如果我连接 VLC,User-Agent
请求 header 可能如下所示:
NSPlayer/7.10.0.3059
SHOUTcast 没有所有浏览器的列表。相反,它只查找一个关键字... Mozilla
。由于历史原因,这在大多数浏览器的用户代理字符串中都可以找到。如果 Mozilla
在 User-Agent
请求 header 中,则 SHOUTcast 发送管理页面。对于所有其他人,它发送一个流。
这会产生很多问题。最值得注意的是,这意味着您无法在浏览器中收听流。如果您在网页上加载该流,User-Agent
字符串将包含 Mozilla
,并且 SHOUTcast 服务器将发送管理页面,导致播放器出错。
有办法解决这个问题。如果在请求路径中添加分号 ;
,SHOUTcast 将忽略实际的 User-Agent
并将其替换为 MPEG OVERRIDE
。 (您可以在 SHOUTcast 服务器日志中看到这一点。)这会导致服务器发送实际的无线电流。
因此,在 SHOUTcast 流的路径中经常看到分号 ;
。但是,;stream.mp3
呢?有一天有人做了它,其他人都复制并粘贴了它。就那么简单。 SHOUTcast 服务器忽略该分号后的所有内容,因此您可以将任何内容放在那里。
偶尔,.mp3
可能是有原因的。当通过 HTTP 加载时,您应该能够通过 Content-Type
响应 header 确定某物的类型。 "file name" 完全没有意义。您可以将 Web 服务器配置为使用任何文件扩展名来命名任何您想要的东西,只要您发送正确的 Content-Type
响应 header,一切都很好。有一次,在过去的 ~15 年里,我遇到了 software that assumed file name extensions were valid and required。这是一种非常错误的做事方式。幸运的是,他们修好了,一切都很好。这是一个非常罕见的问题,不是您应该担心的问题。
既然解释了 SHOUTcast hacks... 到你的其他问题。
/stream [How come this one has only stream, and that's it. [There's no ; semicolon after the / slash and there's no stream.mp3?
那些运行服务器可以为所欲为。这只是普通的 HTTP。路径可以是任何东西。在这种情况下,有人决定调用 运行 那里的任何东西 /stream
。他们可能也没有使用 SHOUTcast。 (同样,SHOUTcast 是 non-standard 并且不正常。)
Why would one stream be able to work without a semicolon, and why would one stream need to have one?
只有 SHOUTcast 需要分号 ;
才能按预期工作。其他服务器不需要这个 hack。
http://91.223.18.205:8000/c11_4? [icecast] Why does this one have a ? question mark at the end [and what does that signify?]
URL 中的问号 ?
将路径与 query string 分开。查询字符串可用于提供参数列表,通常用于路径中的脚本。在这种情况下,问号无关紧要,因为它后面没有参数。
旧的 IE(我认为是 4)曾经过度缓存东西,但如果涉及查询字符串,通常不会。有时人们会添加带有随机数的查询字符串,以确保他们从服务器收到了新的副本。这是很长时间以来不需要的 hack。 IE 4 大约在 20 年前问世。这些天,我们使用适当的缓存控制 headers。 SHOUTcast、Icecast 和其他人都正确地做到了这一点。
所有这些有什么区别?它们的含义是什么?
/;stream.mp3
[; 分号在 / 斜杠后究竟表示什么?]另外,如果我去掉
stream.mp3
,只在斜杠/;
后面留下分号,或者如果我保留 `stream.mp3 附件,有什么区别?/stream
【这个怎么只有stream
,就这样了。 [/
斜杠后没有;
分号,也没有stream.mp3
?为什么一个流可以没有分号工作,为什么一个流需要分号?
http://91.223.18.205:8000/c11_4?
[icecast]为什么这个最后有一个?
问号[那是什么意思?]
SHOUTcast 从与流完全相同的端口和路径为其管理界面提供服务。例如,假设我在 198.51.100.100
上的端口 8000
上有一个 SHOUTcast 服务器 运行。如果我在浏览器中转到以下内容...
http:///198.51.100.100:8000/
...我将看到 SHOUTcast 管理页面,我可以在其中登录和断开连接等等。但是,如果我使用媒体播放器(例如 VLC 或 Winamp)访问相同的 URL,我会听到一个流。
SHOUTcast 根据 User-Agent
请求 header 知道给我哪个。此 header 表示客户端正在尝试连接到服务器。当我连接到我的浏览器时,它可能看起来像这样:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36
如果我连接 VLC,User-Agent
请求 header 可能如下所示:
NSPlayer/7.10.0.3059
SHOUTcast 没有所有浏览器的列表。相反,它只查找一个关键字... Mozilla
。由于历史原因,这在大多数浏览器的用户代理字符串中都可以找到。如果 Mozilla
在 User-Agent
请求 header 中,则 SHOUTcast 发送管理页面。对于所有其他人,它发送一个流。
这会产生很多问题。最值得注意的是,这意味着您无法在浏览器中收听流。如果您在网页上加载该流,User-Agent
字符串将包含 Mozilla
,并且 SHOUTcast 服务器将发送管理页面,导致播放器出错。
有办法解决这个问题。如果在请求路径中添加分号 ;
,SHOUTcast 将忽略实际的 User-Agent
并将其替换为 MPEG OVERRIDE
。 (您可以在 SHOUTcast 服务器日志中看到这一点。)这会导致服务器发送实际的无线电流。
因此,在 SHOUTcast 流的路径中经常看到分号 ;
。但是,;stream.mp3
呢?有一天有人做了它,其他人都复制并粘贴了它。就那么简单。 SHOUTcast 服务器忽略该分号后的所有内容,因此您可以将任何内容放在那里。
偶尔,.mp3
可能是有原因的。当通过 HTTP 加载时,您应该能够通过 Content-Type
响应 header 确定某物的类型。 "file name" 完全没有意义。您可以将 Web 服务器配置为使用任何文件扩展名来命名任何您想要的东西,只要您发送正确的 Content-Type
响应 header,一切都很好。有一次,在过去的 ~15 年里,我遇到了 software that assumed file name extensions were valid and required。这是一种非常错误的做事方式。幸运的是,他们修好了,一切都很好。这是一个非常罕见的问题,不是您应该担心的问题。
既然解释了 SHOUTcast hacks... 到你的其他问题。
/stream [How come this one has only stream, and that's it. [There's no ; semicolon after the / slash and there's no stream.mp3?
那些运行服务器可以为所欲为。这只是普通的 HTTP。路径可以是任何东西。在这种情况下,有人决定调用 运行 那里的任何东西 /stream
。他们可能也没有使用 SHOUTcast。 (同样,SHOUTcast 是 non-standard 并且不正常。)
Why would one stream be able to work without a semicolon, and why would one stream need to have one?
只有 SHOUTcast 需要分号 ;
才能按预期工作。其他服务器不需要这个 hack。
http://91.223.18.205:8000/c11_4? [icecast] Why does this one have a ? question mark at the end [and what does that signify?]
URL 中的问号 ?
将路径与 query string 分开。查询字符串可用于提供参数列表,通常用于路径中的脚本。在这种情况下,问号无关紧要,因为它后面没有参数。
旧的 IE(我认为是 4)曾经过度缓存东西,但如果涉及查询字符串,通常不会。有时人们会添加带有随机数的查询字符串,以确保他们从服务器收到了新的副本。这是很长时间以来不需要的 hack。 IE 4 大约在 20 年前问世。这些天,我们使用适当的缓存控制 headers。 SHOUTcast、Icecast 和其他人都正确地做到了这一点。