e.motion
Статьи

В своем эфире

Авторы: Александр Белков, Дмитрий Смирнов
Опубликовано в журнале «Домашний компьютер» №6 от 19 мая 2005 года.

В мире существует немало программ-серверов, которые могут послужить для создания собственного интернет-радио. Наверное, никто не станет спорить, что один из наиболее распространенных проигрывателей — это Nullsoft Winamp. Поэтому мы рассмотрим процесс организации собственного интернет-вещания с помощью программы-сервера от разработчиков Winamp, которая идеально подходит для работы с этим плеером. Итак, встречайте: SHOUTcast Server!

Для того чтобы превратить ваш Winamp в интернет-радиопередатчик (хотя уместнее говорить, конечно, не «радио», а «медиа»), нужно зайти на сайт http://shoutcast.com и скачать программу SHOUTcast Server. При сочетании слов «скачать» и «сервер» умудренные опытом читатели представят себе долгие мегабайты, а зря: дистрибутив весит всего 267 Kбайт. Еще 224 Kбайта придется потратить на DSP-плагин (подключаемый модуль) для, собственно, Winamp’а. Установите и то, и другое. Winamp версии 3 с плагином несовместим, так что найдите либо версию 2.x, либо 5.х (крайне похожую на 2). Первая программа (сервер) занимается «раздачей» звука слушателям. DSP-плагин отвечает за управление звуком и передачу его с вашей стороны серверу.

Но обо всем по порядку. На момент написания статьи на сайте предлагался SHOUTcast-сервер версии 1.9.5 и плагин версии 1.8.2b. После установки сервера в списке программ появилась папка SHOUTcast DNAS. В ней лежат два ярлыка SHOUTcast DNAS — консольная и графическая (GUI) версия. Отметим, что оба ярлыка запускают только консольный вариант программы, так что воспользоваться графическим интерфейсом не получилось (упрек разработчикам)1. Но не очень-то и хотелось. Прежде чем запустить консольное окно сервера, обратите внимание на ссылку Edit SHOUTcast DNAS configuration. Она (сюрприз!) открывает файл конфигурации сервера.

На сервере необходимо настроить разные ограничения — в частности, количество одновременно допущенных пользователей и битрейт, выдаваемый каждому из них. Определить эти цифры очень просто. Берете максимальную пропускную способность вашего канала (у вас же не диалап, правда? — иначе зачем мы это все затеяли?), делите ее на предполагаемый битрейт вещания и получаете количество слушателей. Так, если ваша линия поддерживает исходящие 256 kbps, и вы планируете вещать 48 kbps на юзера, то простое действие 256/48 покажет, что больше пяти слушателей одновременно подключить не получится. Можно сократить поток до 24 kbps и увеличить число возможных слушателей вдвое. В последнем случае в файле конфигурации надо будет указать параметр MaxUser=10. (Битрейт устанавливается в DSP-плагине.) Внимание: не пытайтесь указать большее число пользователей, надеясь на чудо. Если на месте 10 окажется 11 слушателей, звук будет прерываться у всех. Если же подключено будет 10 из, скажем, 255 возможных и указанных в файле конфигурации, ресурсов вашей машины будет задействовано все равно на 255. Так что оцените свои возможности как можно более реально. Если же какой-то пользователь, желая вас послушать, кликнет на соответствующей ссылке в тот момент, когда все ваши подключения будут заняты, ему просто ответят: извините, лимит превышен, попробуйте зайти через несколько минут.

Следующий важный шаг — это установка пароля для обеспечения безопасности сервера. Пароль указывается в файле конфигурации строчкой Password=ваш_пароль, а также в DSP-плагине.

Номер базового IP-порта можно не изменять, если на вашей машине больше ничего не претендует на порт 8000. Проверить это можно с помощью telnet-клиента (в Command Prompt — командной строке — выполните команду telnet localhost 8000; если порт свободен, вам ответят: connect failed). Этот же порт будет указан в плагине Winamp’а. В случае, если порт занят, найдите любой свободный (последовательным перебором или с помощью какого-нибудь сканера портов) и укажите его в обоих местах.

Сразу предупреждаем: для осуществления вещания нужно нормальное, прямое и честное подключение к Интернету. Ваши главные враги в этом деле — файрволы, прокси-серверы, кэш на стороне провайдера и прочие сетевые чудеса, удобные для получения трафика, но не для его раздачи. Конечно, это неактуально, если вы планируете вещать только для пользователей вашей локальной сетки.

Важные пункты настройки вашего радиосервера на этом заканчиваются, и начинаются необязательные, но полезные. Так, в файле конфигурации можно включить/выключить логи состояния сервера (строка конфигурации LogFile=sc_serv.log); веблоги (WebLog=no); периодичность обновления строки состояния сервера в секундах (RealTime=1); необходимость выводить лог на экран консоли (да: ScreenLog=1, нет: ScreenLog=0); количество последних композиций (от 1 до 20), отображаемое на генерируемой сервером странице played.html (по умолчанию ShowLastSongs=10); необходимость регистрировать ваш сервер в каталоге Shoutcast.com (по умолчанию включено).

В сетевом разделе настроек можно поставить ограничения на адреса вещателей. Для этого следует указать маску подсети в параметре SrcIP. Соответственно, SrcIP=ANY снимет все ограничения, а SrcIP=127.0.0.1, напротив, позволит передавать звук только с вашей машины. Параметр DestIP таким же образом устанавливает ограничения на IP-географию слушателей. Лучше оставьте DestIP=ANY. Параметр Yport отвечает за порт, по которому ваш сервер будет обращаться к http://yp.shoutcast.com (для отображения вашей станции в каталоге). Если вы не спрятаны за web-proxy, скорее всего, подойдет значение Yport=80. Если не сработает, попробуйте значение Yport=666. Если проблемы продолжатся (что маловероятно), задайте вопрос службе технической поддержки провайдера.

Параметр AutoDumpUsers указывает, нужно ли отключать пользователей, если сигнал со стороны вещателя (то есть с вашей) прервался. По умолчанию AutoDumpUsers=0. Если все же решите отключать, параметр AutoDumpSourceTime укажет серверу, сколько секунд выждать перед этим действием, к примеру: AutoDumpSourceTime=30.

Пункт конфигурации IntroFile укажет серверу звуковой файл-приветствие (например, заставку или джингл вашей радиостанции), который будет однократно проигрываться пользователю сразу после его подключения к вашему каналу. Важно: битрейт файла должен соответствовать битрейту вещания. Так, если вы вещаете, как мы договорились выше, на 24 kbps, соответствующий файл должен также быть записан в этом битрейте и, в идеале, называться intro24.mp3 (заранее создайте разные файлы для разных битрейтов — на всякий случай), а строка конфигурации будет выглядеть, например, так: IntroFile= c:intro%d.mp3, где %d — переменная битрейта. По умолчанию интро выключено.

Аналогичным образом можно указать файл, который будет проигрываться слушателям, если источник сигнала (в нашем случае — Winamp) отключится от сервера. Это может быть извинение за неполадки, или реклама, или ваш джингл. Условие на соответствие битрейту сохраняется, синтаксис такой: BackupFile= C:intro%d.mp3, по умолчанию эта опция также выключена.

Формат названия проигрываемой звуковой дорожки может быть изменен строкой TitleFormat=Мое СуперРадио: %s, где %s — название песни, передаваемое серверу Winamp. По умолчанию передается только %s.

Остальные параметры можно считать совсем уж косметическими, оставим их изучение читателю в качестве домашнего задания.

Итак, все настроили? Сохраняем файл конфигурации и… запускаем сервер! Готово? Для проверки наберите в браузере адрес localhost:8000 (или другой номер порта, если вы его меняли). Должна отобразиться живописная страница, рассказывающая, что ваш SHOUTcast-сервер пока выключен.

Приступаем к самой интересной части нашей программы. Запустите Winamp, нажмите Ctrl+P (или Options > Preferences…), зайдите в раздел Plug-ins > DSP/Effect, выберите предварительно установленный Nullsoft SHOUTcast Source DSP v1.8.2b [dsp_sc.dll], закройте Winamp Preferences. Оставшееся окно SHOUTcast Source — это ваша персональная радиостудия, из которой вы ведете вещание. Winamp в данном случае играет роль диджейской вертушки.

На первой закладке SHOUTcast Source — Main — вы видите лишь статистику. На второй — Output — на кнопке Сonnection укажите ваш пароль и порт (если вы его меняли), а на закладке Yellowpages — название вашего канала (читай: радиостанции) в поле Description и координаты для связи (AIM/ICQ/IRQ). Пользователи любят общаться с вещателем, почувствуйте себя диджеем, принимающим звонки слушателей.

Не спешите нажимать кнопку Connect. Уже нажали? На время нажмите Disconnect и перейдите на третью закладку. Укажите битрейт вещания — такой, как вы посчитали в начале работы. Увы и ах, ограничения ставить надо, это все-таки не настоящий радиоэфир, а Интернет.

Вот теперь можете нажать Connect на второй закладке, и переходить на последнюю, четвертую, — Input. Вещать будем с ее помощью.

Составьте хотя бы небольшой плейлист в Winamp’е и запустите его. Предварительно включите и настройте микрофон. В закладке Input окна SHOUTcast Source в качестве Input Device лучше выбрать не предлагаемый по умолчанию Winamp, а пункт Soundcard Input, иначе вы вряд ли сможете воспользоваться микрофоном по назначению.

С помощью слайдера Music Level и системного микшера добейтесь приемлемого уровня громкости (средний звук должен быть в районе –6 dB, пики громкости могут достигать –1 dB). BG Music Level (фоновый уровень музыки) установите где-то на –20 dB, уровень громкости микрофона отстройте самостоятельно, оптимальное значение Fade Time (времени затухания звука) — примерно полторы секунды.

Если музыка звучит, а уровни Input Levels показывают соответствующую громкость — значит, ВЫ ТОЛЬКО ЧТО НАЧАЛИ СВОЕ ВЕЩАНИЕ! Принимайте поздравления.

Остается мелочь. Нажмите мышкой и удерживайте кнопку Push to talk. Музыка плавно стихнет и будет играть как фон. В это время микрофон включен — вам внимают миллионы. Отпустите кнопку: музыка столь же плавно вернется на исходную громкость. Если вы кликнете Lock, держать нажатой кнопку мыши не нужно; это полезно, когда вы планируете произнести программную речь или зачитать слушателям прогноз погоды на неделю.

Остается… найти слушателей! Пригласите друзей по ICQ настроиться на вашу волну, повесьте объявление у себя в онлайновом дневнике или на сайте (указывая, соответственно, свой IP-адрес с нужным портом или ссылку в каталоге сайта Shoutcast.com, если ваш сервер на нем регистрировался). Если дело пойдет на лад, и вы почувствуете, что вас хочет слушать большее число людей, чем позволяет ваш трафик, задумайтесь об установке ретранслятора на сервере провайдера. Но об этом мы расскажем вам как-нибудь в другой раз.


1 На самом деле такая ситуация возникает только при одновременной установке консольной и графической версий. Если изначально установить только GUI-интерфейс, проблема снимается. — Прим. ред.

  • WordPress

Comments

Один комментарий to “В своем эфире”

Trackbacks

Check out what others are saying about this post...
  1. [...] Ну что же, осталось подвести итоги: как это ни прискорбно, сегодня интернет-радио доступно пока не всем и востребовано в первую очередь людьми, находящимися далеко от родины, студентами, изучающими иностранные языки и поклонниками определенных музыкальных стилей или персоналий. Будем надеяться, что ситуация стремительно изменится вместе с увеличением пропускной способности домашних интернет-каналов, и число как вещателей, так и слушателей веб-радио, увеличится. В принципе, это происходит уже сейчас, поэтому открывать свою станцию надо было вчера… Хорошо, максимум — сегодня. Потому что завтра рынок будет поделен, и на три миллиарда желающих вещать останется всего лишь три миллиарда слушателей. О том, как запустить свою веб-радиостанцию за 10 минут, читайте в параллельном материале. [...]



Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!

e.motion