Мне нужно каким-то образом перезапустить поток Shoutcast / Icecast, используя PHP.
Поскольку потоки Shoutcast / Icecast не являются https. И он отправляется не через порт 80, а через 443, а через несколько разных странных портов. И мне нужны https ссылки на нормальные / стандартные порты, такие как 80 или 443. Это самая большая причина, хотя я думаю, что есть некоторые более, но менее важные.
Я провел глубокое исследование и не нашел много.
Лучший код, который я собрал для теперь из всех ресурсов и моих собственных попыток:
$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?
- cra sh проблемы? как cra sh всего php, nginx или даже машины?
- потеря соединения, как этот php сценарий будет продолжать умирать через некоторое время или что-то еще
А может быть, может быть и больше.
Мне действительно трудно найти больше ресурсов, данных и информации, касающихся этой конкретной темы c переадресации аудиопотока с использованием PHP.
Пока я действительно не знаю, что делать. Я просто исследую и думаю, но, как я уже сказал, действительно трудно найти что-то еще об этом топи c. И это единственный код, который у меня есть на данный момент, и я не знаю, стоит ли его использовать ...:)