Icecast 2:协议描述,使用C#流式传输到它

Icecast 2:协议描述,使用C#流式传输到它,第1张

Icecast 2:协议描述,使用C#流式传输到它

据我所知,在Icecast源代码之外的任何地方都没有协议规范。这是从数据包嗅探中发现的:

音频流

该协议类似于HTTP。源客户端将连接到服务器,并向安装点发出请求,并传递一些带有有关流信息的标头:

SOURCE /mp3test ICE/1.0content-type: audio/mpegAuthorization: Basic c291cmNlOmhhY2ttZQ==ice-name: This is my server nameice-url: http://www.google.comice-genre: Rockice-bitrate: 128ice-private: 0ice-public: 1ice-description: This is my server descriptionice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2

如果一切正常,服务器将响应:

HTTP/1.0 200 OK

然后,源客户端继续发送二进制流数据。请注意,似乎有些编码器甚至

200 OK
在开始发送流数据之前甚至没有等待服务器响应。只是标题,空行,然后流数据。

元数据

使用带外HTTP请求发送元数据。源客户端发送:

GET /admin/metadata?pass=hackme&mode=updinfo&mount=/mp3test&song=Even%20more%20meta%21%21 HTTP/1.0Authorization: Basic c291cmNlOmhhY2ttZQ==User-Agent: (Mozilla Compatible)

服务器响应:

HTTP/1.0 200 OKContent-Type: text/xmlContent-Length: 113<?xml version="1.0"?><iceresponse><message>metadata update successful</message><return>1</return></iceresponse>

还要注意,音频流和元数据请求都在同一端口上发送。与SHOUTcast不同,这是服务器运行所在的基本端口。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5567286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存