LINUX.ORG.RU

Настройка радио сервера

 , ,


0

3

Перерыл тонну форумов и документаций, но так и не нашел нужную информацию.

Суть такова: нужно настроить «интернет радио» сервер, с возможностью смены трека из плеера.

Помню было одно радио такое http://bel.wsnet.ru:8000 но оно пропало в 2010 году. Там можно было переоткрыв стрим запустить другой трек. Причем у других пользователей этого радио - трек не менялся.
Плюс открывалось оно любым аудио плеером.

Вот хочу у себя такое настроить но не пойму как. Необязательно это будет Icecast. Может ShoutCast может там вообще всё по-другому было.

icecast - это всего-лишь сервер, на него ещё вещать нужно. Liquidsoap, на данный момент, лучшая хрень, которая может микшировать, и.т.д.

если нужно просто гонять файлики подряд (отдавая их скриптом, не из списка) - ices должно хватить.

alexmaru ()
Ответ на: комментарий от alexmaru

Что вещать нужно это я знаю. Использовал mpd. Но мою ситуацию это не решило.

если нужно просто гонять файлики подряд (отдавая их скриптом, не из списка) - ices должно хватить.

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

RevenantX ★★★ ()
Ответ на: комментарий от Radjah

Вроде как поток. Тоесть был плейлист m3u в котором была только одна ссылка http://bel.wsnet.ru:8000 и всё. После открытия это был один файл. Но трек можно было менять (может даже и перематывать - но этого точно не помню.)

RevenantX ★★★ ()
Ответ на: комментарий от RevenantX

ну вот скриптуй liquidsoap, там lua, и дофига примеров на сайте. А так - один юзер - один поток, это вообще проблем не создаёт (кроме нагрузки при перекодировании под поток, если не будет кодировать заранее).

Если трек можно было «менять», то боюсь, там генерировался просто список файлов, без всякого icecast-а. То есть, обычный m3u плейлист, в котором можно было переключатся.

alexmaru ()
Ответ на: комментарий от alexmaru

Если трек можно было «менять», то боюсь, там генерировался просто список файлов, без всякого icecast-а. То есть, обычный m3u плейлист, в котором можно было переключатся.

Но как это сделано было если в муз. плеере - оно выглядело как 1 трек?

RevenantX ★★★ ()
Ответ на: комментарий от RevenantX

ну, это я понял из первого сообщения, я имел ввиду более широкий смысл: зачем вообще нужно именно радио? почему нельзя просто играть файлы через плейлист любым плеером?

anonymous ()
Ответ на: комментарий от anonymous

Я купил себе мини-компьютер под сервер. На него поставил терабайтный диск. Хочу на него скинуть локальную муз. коллекцию, чтобы доступ был из любого места. В дальнейшем возможно расшарить другим людям.

RevenantX ★★★ ()
Ответ на: комментарий от RevenantX

в пределах дома или этот сервис в инет торчит? клиенты переносные с доступом по wifi или только стационарные? почему нельзя просто расшарить коллекцию и монтировать ее на клиенте удаленно, например, по nfs?

anonymous ()
Ответ на: комментарий от anonymous

Сервис в инет торчать будет. Клиенты разные втч телефон с LTE.

почему нельзя просто расшарить коллекцию и монтировать ее на клиенте удаленно, например, по nfs?

Потому, что мне надо именно так. Поидее же ничего сложного раз такой сервис был то.

RevenantX ★★★ ()
Ответ на: комментарий от RevenantX

Скорее всего под каждый коннект строился плейлист на стороне сервера и пихался юзеру в виде потока. Типа как ShoutCast, только под каждый коннект запускается свой плеер.

Radjah ★★★ ()
Ответ на: комментарий от RevenantX

я могу это себе представить как костыль к радио только: кидается в m3u несколько одинаковых ссылок, и на реконнекте заменяется песня (он там пакетом, пока не развернёшь - не видно, из чего состоит). Либо ещё вариант - ты никогда не разворачивал список :-)

Узнать, было-ли решение не-костыльным довольно просто: посмотреть, отсылает-ли что-нибудь vlc/winamp/хрен-его-знает-что на сервер во время клика на далее-назад и посмотреть в каких форматах плейлистов возможны управляющие команды.

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

alexmaru ()
Ответ на: комментарий от alexmaru

Я на самом деле понял примерно как это было.
Там скорей всего был особый код (на PHP например), который просто выдавал случайный файл юзеру по запросу без перекодирования и прочего.
Нашел даже скрипт на питоне года так 2001 или где-то там, который именно это и делает.

RevenantX ★★★ ()

А вообще на:

<?php

$speed = 20; // kbps
$path = realpath('../../Music/streamer') . '/';
 
if (!array_key_exists('HTTP_ICY_METADATA', $_SERVER)) {
    exit('You must open this URL with audio player!');
}
 
header('ICY 200 OK');
header('Icy-Notice2: My radio description');
header('Icy-Name: My radio');
header('Icy-Genre: misc');
header('Icy-Url: ' . $_SERVER['HTTP_HOST']);
header('Icy-Pub: 0');
 
set_time_limit(0);
$chunkSize = $speed * 1024 * 8;
$tracks = glob($path . '*.mp3');
if (!$tracks) {
    $tracks = array();
}
 
while (1) {
    // shuffle all tracks
    shuffle($tracks);
    // each track by track
    foreach ($tracks as $track) {
        $fp = @ fopen($track, 'rb');
        if ($fp) {
            // play (streaming) track
            while (1) {
                $data = fread($fp, $chunkSize);
                print $data;
                flush();
                if (strlen($data) < $chunkSize) {
                    fclose($fp);
                    break;
                } else {
                    sleep(1);
                }
            }
        }
    }
}

deep-purple ★★★ ()
Последнее исправление: deep-purple (всего исправлений: 2)