»нтернет-радио своими руками

(”становка и настройка сервера ShoutCast)
»сточник:cpustock.narod.ru/
ƒата публикации:16.02.2008
Twitter Facebook Vkontakte

Ќесмотр€ на то, что стать€ по€вилась достаточно давно (в 2002 году), она остаетс€ актуальной до сих пор. —ейчас, когда широкополосный доступ в интернет становитс€ "по карману" многим люд€м, организаци€ интернет-радиовещани€ или радиовещани€ в локальной (домашней) сети может заинтересовать многих незр€чих и слабовид€щих пользователей компьютерной техники.

—одержание

  1. „то такое Shoutcast ?
  2. ”становка сервера Shoutcast
  3. Ќастройка DSP
  4. Ќастройка параметров вещани€
  5. ѕараметры конфигурационного файла
  6. ѕолучение ћетаинформации
  7. 7. Ќеобходимые ресурсы

„то такое Shoutcast?

Shoutcast - это программный продукт, который вместе с Winamp'ом образует единую систему трансл€ции аудио-потоков в сет€х на базе протокола tcp/ip. —истема позвол€ет:

1. ѕрослушивать доступные каналы в интернете или локальной сети при помощи плееров, поддерживающих аудио потоки. Ёто следующие плееры: Winamp (Windows), Audion (Mac), XMMS (Linux\XWindows). »нформацию о доступных серверах в интернете, их рейтинг, количество слушателей, название проигрываемой композиции в насто€щий момент можно узнать на страничке производител€ системы http://www.shoutcast.com/, причем действующие серверы посто€нно обновл€ют эти данные.

ƒл€ того, чтобы заценить какой-нибудь канал нужно при запущенном WinampТe нажать клавиши Ctrl+L и ввести в по€вившемс€ окошке <IP адрес сервера>:<порт сервера>.

2. —оздать собственное вещание по сет€м Ip: интернет, локальные сети (офис, школа, домашн€€ локалка). ƒл€ этого необходимо запустить собственный сервер трансл€ции аудио потоков.

—ервер позвол€ет использовать два разных аудио источника дл€ последующей трансл€ции:

  1. Winamp (локальный, т. е. который запущен у теб€ на компе, или удаленный, т. е. тот который у при€тел€ );
    ≈сли транслируешь поток со своего Winamp'a, то дл€ него необходимо поставить плагин (plug-in) Shoutcast Sourse (по другому называетс€ DSP плагин). ќн выполн€ет сжатие и передачу данных от Winamp'a на сервер-трансл€тор. ѕри этом композиции дл€ трансл€ции поступают на сервер непосредственно из плей-листа WinampТa. “.е. есть возможность одновременно и самому слушать музон, и одновременно его же передавать на свой сервак.
  2. ƒругой сервер Shoutcast с доступным дл€ перетрансл€ции каналом вещани€.

”становка сервера Shoutcast

Shoutcast server доступен дл€ следующих платформ: Windows95\98\NT\2000, FreeBSD, Linux, Mac OS X.

–ассмотрим установку версии дл€ Win32 системы как наиболее простую дл€ использовани€ в домашних услови€х.

—качиваем дистрибутив сервера и распаковываем его в каталог C:/Program Files/Winamp/Shoutcast/ по рекомендации производител€, но можно и в любую другую. ѕри этом установ€тс€ две версии сервера, одна дл€ запуска из командной строки SC_SERV_CONS.EXE (по умолчанию использует файл SC_SERV_CONS.INI как файл с настройками), друга€ дл€ запуска в оконном режиме SC_SERV_GUI.EXE (по умолчанию использует файл SC_SERV_GUI.INI как файл с настройками).

»значально система поставит файл SC_SERV.INI, после этого можно скопировать содержимое SC_SERV.INI в файлы SC_SERV_CONS.INI и SC_SERV_GUI.INI; можно также использовать команду

SC_SERV_CONS.EXE <FILENAME.INI>

или

SC_SERV_GUI.EXE <FILENAME.INI>

дл€ запуска сервера с нужным файлом настроек, это удобно когда подготовлено несколько конфигурационных файлов. ќписание параметров файлов ini см ниже. ќбщий вид сервера трансл€ции см на рис 1.

ѕосле этого устанавливаем DSP плагин. («десь и далее, все плагины перекачиваютс€ с сайта (http://www.shoutcast.com/) в виде архивов zip и разархивируютс€ в директорию plugins Winamp'a).

“акже необходимо установить MPEG Layer-3 кодек в систему. ѕроверить установку которого можно здесь: пуск, настройка, панель управлени€, мультимеди€, устройства, программы аудиосжати€ (должна быть запись об установленном кодеке мп3 сжати€). Ћучше всего поставить Fraunhofer IIS MP3 Layer3 Codec (Professional version), он позволит вести вещание с битрейтом более чем 56 kbps. »нформацию по настройке DSP см ниже.

“акже есть еще дополнительные плагины к Winamp'y:
SHOUTcast Live Input Plug-in - позвол€ет накладывать на свою трансл€цию речь при присоединенном микрофоне к звуковой карте или аудио поток с входа line-in звуковой карты; если в Winamp'e нажать Ctrl+L и ввести 'linerec://', то будет транслироватьс€ только то, что идет по микрофону или по Line-in к звуковухе.
SHOUTcast Null_Output Plug-in - поможет осуществить трансл€цию, если нету звуковой карты или ты решил не слушать сам то, что транслируешь .

«амечание: возможно использование этого плагина дл€ снижени€ нагрузки на свой комп при трансл€ции.

Ќастройка DSP плагина

«апусти Winamp, нажми Ctrl+P, в по€вившемс€ окне Winamp Preferences увидишь дерево папок выбери папку DSP/Effects, там будет новый плагин Shoutcast sourse for winamp.

∆ми кнопарь Configure снизу и по€витс€ окошко Configure Shoutcast Plug-in .

≈го настройки:
Enable low-pass filtering - включить низко-уровневую фильтрацию (рекомендуетс€ производителем);
Enable advanced recording mode - позвол€ет выбрать дополнительный режим записи, либо с микрофона, либо с line-in звуковухи;
Save broadcast to files in - можно указать папку дл€ записи вещани€.

Ќастройка параметров вещани€

“еперь жми  на по€вившуюс€ иконку в системном трее Shoutcast Source. ѕо€витс€ окошко Shoutcast source ∆ми кнопку Edit (первую сверху).

ѕо€витс€ окошко Shoutcast server selection. ≈го настройки:
Shoutcast server - Ip сервера, на который будет передавать твой Winamp (если сервак стоит у теб€ самого, то оставл€й тут localhost);
Port - порт сервера, на который будет передавать твой Winamp;
Password - пароль дл€ доступа на передачу этому серверу; поскольку этот пароль заноситс€ в конфигурационный локальный файл сервера, то не зна€ его, ничего передать этому серверу ты не сможешь.

ƒальше идут пол€ с информацией о сервере ( Server Information): Description (ќписание), Genre(∆анр), URL (адрес твоего сайта), IRC Channel (твой канал на IRC), ICQ# (твой номер в аське), AIM Name (твое им€).

“еперь в окне Shoutcast source жми кнопку Edit (вторую сверху). ѕо€витс€ окошко Format selection. «десь можно выбрать параметры твоей трансл€ции (битрейт kBit/s, частоту дискритизации Hz, Mono\Stereo), а также сохранить понравившиес€ настройки как схему.

«амечание: если не поставлен кодек Fraunhofer IIS MP3 Layer3 Codec (Professional version), то больше, чем 56 kBit/s 22.000 Hz Stereo выставить нельз€.

—ледующие настройки в окошке Shoutcast source (см рис 4) - Song Title и URL отмечай галочкой на режим авто. “акже ставивь галку в поле Auto Reconnect. ѕосле всего этого жми кнопку Connect, и если все настроенно правильно то твой источник трансл€ции будет присоединен к серверу трансл€ции.

ѕараметры конфигурационного файла

¬от полный список всех переменных, вход€щих в файл конфигурации: ¬ ( ) - даетс€ значение по умолчанию, в [ ] - значение, которое € выбрал.
MaxUser - максимальное количество клиентов дл€ твоего сервера; (32); [25].
Password - этот пароль используетс€ дл€ идентификации сервером источника аудио потока, пароль прописываетс€ как в файле настройки сервера, так и в свойствах DSP плагина Winamp'a; (changeme);
[не скажу]. PortBase - порт твоего Shoutcast Servera, на который будут конектитс€ меломаны; (8000); [8000].
LogFile - им€ файла дл€ записи событий сервера; (sc_serv.log); [sc_serv.log].
RealTime - [ только дл€ серверов WIN32, запускаемых из командной строки и дл€ *nix], показывает отражать ли серверу строку статуса, обновл€емую каждую 1 секунду; (1); [1].
ScreenLog - [ только дл€ серверов WIN32, запускаемых из командной строки и дл€ *nix], показывает отражать ли серверу диагностические сообщени€ (логи) на экране; (1); [1].
ShowLastSong - задает количество композиций дл€ выдачи в файл /played.html (10, можно поставить 1-20); [10].
HistoryLog - им€ файла дл€ записи истории логов; (sc_hist.log); [sc_hist.log].
HistoryLogTime - частота записи истории логов, в секундах; (30); [30].
TchLog - разрешает твоему серверу вести записи в логе по изменени€м в yp директории (yp.shoutcast.com); (yes); [yes].
WebLog - разрешает добавл€ть в лог данные при вызове твоего сервера по http:// ; (no); [no].
SrcIp - (от source ip) Ip адрес источника аудио потока на твой сервер трансл€ции; можно поставить ANY, т е любой может давать тебе данные (естественно только тот, кто имеет пароль), или 127.0.0.1, т е только ты, или любой другой Ip; (ANY); [ANY].
DestIp - (от destination ip) Ip адрес клиентов твоего сервера трансл€ции; если ANY, то все желающие могут принимать твои передачи с сервера, или любой другой Ip; (ANY); [ANY].
Yport - порт дл€ подсоединени€ к yp.shoutcast.com (дл€ отсылки информации на базу данных directory data о своем сервере); если вы используете веб-кеш, то можно использовать еще и другие порты, какие см на www.shoutcast.com; (80); [80].
NameLookups - если 1, то сервер будет выполн€ть преобразование адреса Ip в имена; (0); [0].
RelayServer - Ip адрес; если обозначен, то твой сервер будет транслировать доступный канал с другого сервера (по указанному Ip), а Winamp он воспринимать не будет;
(закомментировано);[закомментировано]. RelayPort - порт сервера, канал которого ты ретранслируешь; (закомментировано); [закомментировано].
AdminPassword - пароль администратора (отличаетс€ от Password'a), дает все права на kick, ban и др; (adminpass) ; [не скажу].
AutoDumpUser - при потери св€зи с источником трансл€ции : если 1,то сервер отключит от себ€ всех пользователей, иначе, они остаютс€ на канале без оключени€ ( и есть еще возможность в это врем€ включить им на прослушивание аудио фон (BackupFile)); (0); [0].
AutoDumpSourceTime - определ€ет врем€ (в секундах) дл€ прин€ти€ решени€ AutoDumpUser; (30); [30].
IntroFile - им€ файла ,его сервер будет проигрывать каждому меломану при заходе на твой канал; %d - означает твой битрейт; (intro%d.mp3); [intro128.mp3].
«амечание: этот файл может быть только в формате MP3 и полностью соответствовать по всем параметрам передаваемому аудио потоку.
BackupFile - им€ файла, при потери св€зи с источником трансл€ции сервер будет транслировать этот аудио фон; %d - означает твой битрейт; (backup%d.mp3); [backup128.mp3].
«амечание: этот файл может быть только в формате MP3 и полностью соответствовать по всем параметрам передаваемому аудио потоку.
TitleFormat - задает формат передачи мета данных плееру меломана о сервере и транслируемой композиции дл€ отображени€ в виде строки, вместо %s автоматически подставл€етс€ название композиции; (Justin Radio: %s); [StationY2K: %s].
URLFormat - задает формат передачи url строки (и саму строку, т.е. адрес твоего сайта), котора€ передаетс€ url minibrouser'y слушателей; (http://www.server.com/redirect.cgi?url=%s); [http://192.168.45.3/StationY2K.htm].
PublicServer - может быть always, never или default; если always или default, то DSP plug-in и твой сервер будут иметь статус public (т.е. информаци€ о них будет поступать на базу данных shoutcast directory (http://yp.shoutcast.com/); если newer, то нет; (default); [default].
AllowRelay - может быть yes или no; yes - другие сервера могут ретранслировать аудио поток с твоего сервера трансл€ции; no - другие сервера не могут ретранслировать аудио поток с твоего сервера трансл€ции; (yes); [yes].
AllowPublicRelay - может быть yes или no; если yes, то твои ретрансл€торы смогут отослать метаданные в базу данных shoutcast directory (http://yp.shoutcast.com/); если no, то нет; (yes); [yes].
MetaInterval - показывает как часто (задаетс€ в байтах) передаютс€ мета данные; (8192); [8192].
ListenerTimer - определ€ет максимальное врем€ нахождени€ меломанов на канале (в минутах); (закомментировано, т. е. врем€ пребывани€ неограниченно); [закомментировано].
BanFile - им€ файла, здесь наход€тс€ клиенты, вход которым к тебе запрещен; (sc_serv.ban );[sc_serv.ban].
RipFile - им€ файла, здесь наход€тс€ клиенты, вход которым к тебе запрещен не только под видом слушател€, но и под видом ретрансл€тора; (sc_serv.rip); [sc_serv.rip].
CurrentLogIn - им€ файла, с ключевыми словами дл€ выдачи метаинформации (шаблон); (c:/hi.in); [с:/hi.htm].
CurrentLogOut - им€ файла, дл€ выдачи по шаблону метаинфориации; (c:/hi.htm); [c:/done.htm].
CurrentLogTime - врем€ обновлени€ (в секундах) данных в CurrentLogOut; (30); [15].
Unique - ставит эту строчку в соответствие значку $; т е если unique=my server, то $=my server ; удобно использовать в файлах конфигурации; (закомментировано) ;[закомментировано].
Include - им€ конфигурационного файла, который начинает читать сервер, встретив эту строку; (закомментировано) ;[закомментировано].
CpuCount - количество процессоров; (1) ;[1].
Sleep - определ€ет пакеты отсылки данных клиенту, но задаетс€ в миллисекундах; (833) ;[833].

ѕолучение метаинформации

Shoutcast server поддерживает механизм получени€ из него мета информации, это данные о сервере и о проигрываемой композиции. ѕринцип тут такой: составл€етс€ файл (его им€ указываетс€ в ключе CurrentLogIn), в нем запросы на данные присутствуют в виде ключевых слов в теге комментари€. —ервер анализирует эти ключевые слова и подставл€ет вместо них свои текущие данные, вс€ информаци€ после этого выводитс€ файл, указанный в поле CurrentLogOut. „астота обновлени€ сервером информации в CurrentLogOut указываетс€ в CurrentLogTime.

¬от список всех ключевых слов:ch6 LISTENERS - количество слушателей в насто€щий момент времени
MAXLISTENERS - максимальное количество слушателей на канале
LISTENERTABLE - проста€ таблица слушателей
GENRE - жанр композиции
DESCRIPTION - описание композиции
URL - текущий url
HITS - количество кликов, с которым стартовал сервер
CURRENTSONG - название текущей композиции.

ѕример шаблона:

<HTML>
<HEAD>
<TITLE>My Current Stats</TITLE> 
<HEAD>
<BODY> 
My SHOUTcast server is currently playing <!-- CURRENTSONG -->. 
</BODY>
</HTML>

Ќеобходимые ресурсы

  1. Winamp - http://www.winamp.com/
  2. Shoutcast server, DSP плагин дл€ Winamp, SHOUTcast Live Input Plug-in, SHOUTcast Null_Output Plug-in, документаци€ - http://www.shoutcast.com/
  3. Fraunhofer IIS MP3 Layer3 Codec (Professional version) - http://www.iis.fhg.de/amm/


–аспространение материалов сайта означает, что распространитель прин€л услови€ лицензионного соглашени€.
»де€ и реализаци€: © ¬ладимир ƒовыденков и јнатолий  амынин,  2004-2021