MainRadiotalkCustom
Общие вопросы по интернет радио вещанию
4   •   Посмотреть все темы

Sam -> IceCast -> ShoutCast связка

 

12
QwiBeck @QwiBeck
Поднял и успешно воплотил в жизнь радио на IceCast сервере, где nonstop и диджеи подключались через Sam'а.
Но возникло 1 маленькое затруднение:
Скрипт IceCast для работы диджеев выглядит вот так:
Показать текст

Его задача - подключить слушателя на "/listen.mp3" и далее, сброс на "/nonstop" и возврат на любой "/dj№", если подключается DJ.
Сам скрипт работает, но незадача в том, что если на канале слишком много пользователей при смене ведущего пользователи всей толпой линкуются в другую точку. Задержка такого линкования от 3 до 25 секунд или полный обрыв соединения слушателя (рандомно).

Посидел я и подумал, а что если поднять сервер SHOUTcast, заставить его одного скакать по точкам, а пользователи приспокойненько будут сидеть и слушать на одном линке с него?

Подкажите, как реализовать config в SOUTcast, чтобы он слушал ICEcast?

localhost
порт ICE: 8000
конект к /listen.mp3

468
Klef @Klef
во первых это не скрипт а конфиг айскаста =)
во вторых, зачем столько маунтов, вы не доверяете своим диджеям?

ну а по теме, айскаст корректно работает с перебросом пользователей. что за ось, версия айскаста, что за камень и память

Отредактировано Klef - 16.05.2011
12
QwiBeck @QwiBeck
Klef пишет:

ну а по теме, айскаст корректно работает с перебросом пользователей? что за ось, версия айскаста, что за камень и память

Вполне корректно.
Проблема наблюдалась на на *nix так и на Win.
Сервер стоит на VDS 512 памяти и ~1,5 камень.

Такое колличество маунтов служит для того, чтобы на сайте отображать Кто из диджеев ведет эфир и прочее.

468
Klef @Klef
там не вопрос, хотел запятую :)
просто у мну спокойно перелетают нужные количества (пик на 1200 был с копейками) между маунтами.

по поводу отображения DJ рекомендую использовать следующий способ:
каждый RJ в названии станции в конце добавляет строку :: RJ Mr.Handy

$title="HZ";
$track="HZ";
$ano="HZ";
$fname1='http://ip:port/mount.xspf';
$xml = simplexml_load_file($fname1);
$ano=$xml->trackList->track->annotation;
$track=$xml->trackList->track->title;
if (strlen($ano)<40)
{
$xml = simplexml_load_file($fname2);
$track=$xml->trackList->track->title;
$ano=$xml->trackList->track->annotation;
$prz=1;
if (strlen($ano)<40) {$prz=2;}
}
$mass=explode("\n", $ano);
if ($prz==0) {
$title=substr($mass[0], 14,strpos($mass[0],"::")-15);
}