我需要使用PHP以某种方式重播Shoutcast / Icecast流。
为什么?
因为Shoutcast / Icecast流不是https。它不是通过80和443端口发送的,而是通过一些不同的奇怪端口发送的。而且我需要在普通端口/标准端口(例如80或443)上使用https链接。这是最大的原因,尽管我认为还有一些但不那么重要。
这些链接就像http://hostname.com:5921/stream
,而我需要像https://hostname.com/stream?user=x
这样的链接。
我进行了深入研究,但没有发现太多。
我发现了类似的东西:
https://stackoverflow.com/questions/7998773/is-it-possible-to-restream-an-internet-radio-using-php-php-guru-needed
https://www.svnlabs.com/blogs/radio-icecast-shoutcast-php-proxy-to-re-stream-radio-stream-on-https/
https://stackoverflow.com/questions/36306457/read-mp3-stream-and-echo-back-to-client-in-php
我现在从所有资源和尝试中收集的最佳代码是:
$link = 'http://shoutStreame.streamland.com/proxy/radioGame?mp=/1'; //example link to a Shoutcast stream (not working, only example)
ob_start();
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
header('Content-Disposition: attachment; filename="stream.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
$handle = fopen($link, 'r');
while (($data = fread($handle, 1024))) {
echo $data;
ob_flush();
flush();
}
而且此代码似乎并不...好吗?优秀?
我只是觉得我用这段代码做错了,它没有效果,可能会导致问题。
我主要关心的是:
也许还会有更多。
我真的很难找到更多有关使用PHP重新传输音频流的特定主题的资源,数据和信息。
目前我还不知道该怎么办。我只是在研究和思考,但正如我所说,要找到关于此主题的更多信息确实很困难。这是我目前唯一的代码,我不知道使用它是否好...:)
我需要以某种方式使用PHP重新播放Shoutcast / Icecast流。为什么?因为Shoutcast / Icecast流不是https。它不是通过80和443端口发送的,而是通过其他不同的方式发送的...
因为Shoutcast / Icecast流不是https。