我想在不使用自己的广播公司的情况下向SHOUTcast或Icecast服务器提供音频数据,因为我将在包括移动设备在内的各种平台上使用它。
我需要协议描述,开源项目或样本才能使用Objective-C,C或C ++向SHOUTcast和Icecast服务器发送音频数据(从麦克风或文件)。
在哪里可以找到构建正确的SHOUTcast / Icecast源客户端所需的信息?
答案 0 :(得分:12)
评论:现在是时候有人为移动设备制作SHOUTcast源客户端了。我已经需要一段时间,但没有时间来构建它,所以对你赞不绝口。请在某个时候制作Android版本。
您应该做的第一件事是download Wireshark。
启动数据包捕获,启动SHOUTcast服务器,然后启动源客户端,并将其连接到服务器。为这个协议的可怕简单做好准备。
CrLf
(或\r\n
)。如果密码错误,会说invalid password
或类似的东西。如果它是正确的,你会得到这样的东西:
OK2
icy-caps:11
请注意,每行后面都有CrLf
,在发送这两个标题后,会有一对CrLf
。
现在,由源客户端发送一堆标题:icy-name
,icy-genre
,icy-pub
,icy-br
,{{1} },icy-url
,icy-irc
,icy-icq
,icy-aim
。像这样发送:
content-type
每一行都应该跟icy-name:My Awesome Station
后面,在您发送完所有标题后,发送一对CrLf
。
完成所有操作后,开始发送您的流数据!无需在任何特定位置启动,只需发送数据即可。接收端的客户端可以同步到帧。 SHOUTcast服务器对流经它的流量完全“愚蠢”。您可以连接Telnet客户端并根据需要发送大量文本。
所以,您可能想知道如何为下一首曲目发送信息,而不是。有趣的是,这与你发送音频数据的连接完全是带外的。
您所要做的就是向端口基站发出Web请求(在我们的示例中为8000):
CrLf
如果难以阅读,这些是参数:
您会注意到,这些参数和其他参数都可以在SHOUTcast管理面板中找到。
答案 1 :(得分:0)
我开发了shoutcast包装器原生C文件以及可以从设备麦克风流式传输的示例Android应用程序 - > android-icecast-broadcast
它是从麦克风捕获,编码pcm音频。并播放冰服务器。