使用PHP重新流播广播/广播流

问题描述 投票:0回答:1

我需要使用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,nginx甚至机器崩溃一样?
  • 失去连接,像这样的php脚本将在一段时间后继续消亡
  • 也许还会有更多。

我真的很难找到更多有关使用PHP重新传输音频流的特定主题的资源,数据和信息。

目前我还不知道该怎么办。我只是在研究和思考,但正如我所说,要找到关于此主题的更多信息确实很困难。这是我目前唯一的代码,我不知道使用它是否好...:)

我需要以某种方式使用PHP重新播放Shoutcast / Icecast流。为什么?因为Shoutcast / Icecast流不是https。它不是通过80和443端口发送的,而是通过其他不同的方式发送的...

php streaming icecast shoutcast internet-radio
1个回答
0
投票

因为Shoutcast / Icecast流不是https。

© www.soinside.com 2019 - 2024. All rights reserved.