Организация потокового аудиовещания в тульской
локальной сети ТТК на базе подключения по технологии АДСЛ.
Для организации аудиовещания необходимо установить следующие программы:
* потоковый аудиосервер nullsoft SHOUTcast версии не ниже 1.8.9.
Я использую версию 1.9.7 и настройки будут верны для этой версии, для других версий настройка будет такой же, но 100% совместимости не
гарантирую.
* плеер WinAmp версии не ниже 5.04
* плагин SHOUTcast source версии 1.9
* программный файерволл. Я пользуюсь Agnitum Outpost Firewall
версии 3.51 и настройки даны для него.
Настройка потокового сервера SHOUTcast.
Сначала необходимо настроить сам сервер вещания. Настройка сервера заключается в редактировании конфигурационного файла. Конфигурационный файл состоит из параметров, их значений и комментариев. Коментарии начинаются со знака точки с запятой ";" и продолжаются до конца строки. Параметры имеют следующий синтаксис "имяпараметра=значение".
В конфигурационном файле сервера используются следующие параметры:
Обязательные параметры -если параметры отсутствуют или имеют неправильное значение, то работа сервера завершиться с ошибкой.
PortBase- назначает порт протокола TCP, через который будут передаваться данные. Значение по-умолчанию - 8000. Можно поменять на любое другое значение по вашему желанию. Максимальное значение - 65535. Внимание, указанный порт и порт + 1 не должны быть заняты другими приложениями.
MaxUsers -назначает максимальное число одновременно обслуживаемых пользователей. Методика расчёта этого числа следующая: maxusers = скорость отдачи / битрейт вещания. Округляется в меньшию сторону. Например: максимальная скорость отдачи для адсл2+ составляет один мегабит в секунду (1024kbps), битрейт вещания возьмём для кодека mp3 96kbps.
Для остальный приложений оставим скорость отдачи в 30kbps. Подставим значения и получаем: (1024-30)/96=10,34... Округляем это значение до
ближайшего меньшего числа и получаем 10 пользователей. Значение поумолчанию -32.
Password - указывает пароль на подключение источника и на доступ к вэб-интерфейсу администратора. Должен состоять из латинских букв и цифр, регистр символов не различается - это значит, что заглавные и строчные буквы совпадают. Значение не должно быть пустым. Значение поумолчанию -changeme.
Опциональные параметры ( это значит, если какой-либо из указанных ниже параметров отсутствует, то это не приведёт к аварийному завершению работы сервера).
Logfile - указывает имя файла протокола. Допустимо любое значение имени файла, корректное для текущей платформы. Если значение равно nul, то протоколирование в файл отключено. Значени по-умолчанию sc_serv.log.
ScreenLog -включает отображение диагностических сообщений сервера на консоль. Диагностические сообщения так же дублируются в файл протокола. Поддерживается только консольными версиями сервера. Принимает значения 1 (включено) и 0 (отключено).
RealTime -включает отображение статусной, которая ежесекундно обновляется и показывает текущее состояние сервера. Данный параметр поддерживается только консольными версиями сервера. Принимает значения 1 (включено) и 0 (отключено).
ShowLastSong - указывает, сколько названий последних песен отображается на странице /played.html. Допустимые значения от 1 до 20.
TchLog- указывает, должны ли записываться в протокол подключения yp.shoutcast.com к серверу. Принимает значения yes (да) и no (нет).
WebLog-указывает, должны ли записываться в протокол посещения вэб-страниц сервера. Принимает значения yes (да) и no (нет).
W3CEnable -включает w3c-протоколирование. w3c-протокол можно просматривать с помощью утилит Analog или WebTrends и содержит информацию о пересылке данных каждому пользователю. Принимает значения yes(да) и no (нет). По-умолчанию включено.
W3CLog - имя файла с w3c-протоколом.
SrcIP - адрес источников аудио-потока, допущенных к вещанию. Если поток будет подаваться с той же машины, на которую установлен сервер, то принимает значение 127.0.0.1. Так же может принимать значение any (любой).
DestIP- адрес интерфейса, через который происходит подключение и передача данных сервером. Параметр очень критичен, если ваш компьютер имеет несколько IP-адресов. Значение по-умолчанию any (любой), то есть сервер работает через любые установленные сетевые интерфейсы.
YPort - порт на подключение к yp.shoutcast.com. По-умолчанию значение равно 80. Стоит менять, если только соединение осуществляется через прокси-сервер.
NameLookups- определять ли dns-имена слушателей. Принимает значения 1 (включено) и 0 (отключено). По-умолчанию отключено.
RelayServer и RelayPort -IP-адрес и порт сервера, на который будет пересылаться поток. Вам врядли понадобится, так что можете смело удалять или закоментировать эти строки. По-умолчанию параметры отключены, а в конфигурационном файле прописаны значения 198.162.1.58 и 8000.
AdminPassword- пароль на администрирование через вэб-интерфейс.
Если данный параметр отсутствует, пароль на администрирование будет тот же, что и на подключение источника потока. Те же требования к
паролю, что и для параметра Password. По-умолчанию параметр отключён и имеет значение adminpass.
AutoDumpUsers - отключать ли пользователей, если источник потока отключён. Принимает значения 1 (включено) и 0 (отключено). По-умолчанию параметр отключён.
AuotDumpSourceTime -время в секундах, которое источник потока будет молчать, прежде чем сервер разорвёт с ним соединение. Значение по-умолчанию 10.
ContentDir - каталог, в котором размещены стандартные аудио-файлы.
По-умолчанию это подкаталог \content каталога, в который установлен сервер.
IntroFile - мп3-файл, который будут слышать подключившиеся к серверу пользователи. Рекомендуется, что бы параметры файла соответствовали качеству вещания. Если параметр отключён, то естесственно ничего не будет воспроизводиться и пользователю будет сразу передан поток,полученный от источника. По-умолчанию параметр отключён и имеет значение в конфигурационном файле c:\intro%d.mp3. %d заменяется на текущий битрейт вещания, то есть если битрейт вещания 96 kbps, то параметр примет значение c:\intro96.mp3.
BackupFile - мп3-файл, который будет воспроизводиться, если источник потока отключён. Актуально, если отключено AutoDumpUsers. Требования те же, что и для IntroFile. Параметр по-умолчанию отключён и имеет значение в конфиге c:\backup%d.mp3.
TitleFormat - задаёт название потока. В строке можно использовать параметр %s, который будет заменяться строкой, полученной от источника
потока. Например, если "TitleFormat=MyRadio: %s", а от источника потока получена строка "Nine Inch Nails -Hurt", название потока,
которое будет отсылаться пользователям будет "My Radio: Nine Inch Nails - Hurt". Если параметр отключен, то название будет то, которое
сервер получил от источника потока. По-умолчанию параметр отключен и имеет значение "%s".
UrlFormat -формат url'a, посылаемого пользователям. По-умолчанию параметр отключен, а пользователям отсылается url, полученный от источника потока.
PublicServer -является ли сервер публичным. Принимает значения always (всегда), never (никогда) и default (по-умолчанию). Значение default означает, что информация берётся у источника потока или сервера пересылки (relay-сервер).
AllowPublicRelay -подлежит ли сервер публикации в каталоге yp.shoutcast.com. Принимает значения yes (да) и no (нет).
MetaInterval - определяет, как часто будут отсылаться метаданные.
Значение указывается в байтах. Значение по-умолчанию 8192 - рекомендуется оставить.
ListenerTimer - определяет максимальное время в минутах, которое пользователь может находиться на сервере. Если равно 0 - то ограничений нет.
BanList - имя текстового файла для работы с забанеными пользователями.
Автоматически создаётся вэб-интерфейсом. Значение по-умолчанию sc_serv.ban.
RipList - имя текстового файла для работы с пользователями, которые всегда могут подключаться к серверу. Если количество пользователей максимально, то сервер автоматически отключит пользователя, находящегося на сервере самое продолжительное время для того, что бы освободить соединение для пользователя, чей адрес прописан в данном файле. Значение по-умолчанию sc_serv.rip.
RipOnly - если включить данный параметр, то к серверу смогут подключаться только пользователи, чьи адреса прописаны в файле, определённым параметром RipList. По-умолчанию параметр отключён.
Следующие параметры применяются для ускорения работы сервера и менять их без особой потребности не рекомендуется.
CpuCount - количество центральных процессоров. Оставьте значение по-умолчанию (1), если у вас обычный компьютер.
Sleep -время (в милисекундах) "сна" процессора между отсылкой данных. Значение по-умолчанию 883 оптимально для битрейта 128kbps.
Рекомендуемые значения от 100 до 1024. Уменьшение этого значения увеличивает нагрузку на процессор. Если у вас медленный процессор, то
можно попробовать уменьшить значение этого параметра для того, чтобы устранить пропуски в потоке.
CleanXml -включает удаление лишних пробелов и пустых строк при выводе xml-файлов. Рекомендуется включить, если возникают проблемы в работе xml-парсера при обработке xml-файлов статистики. Принимает значения yes (да) и no (нет). По-умолчанию параметр отключён.
Можно создать несколько файлов конфигурации и сохранить их под разными именами. Запустить сервер с выбранной конфигурацией можно
из командной строки, из диалога "Выполнить..." или создав ярлык: sc_serv.exe имяфайлаконфигурации.
Вот примерный файл конфигурации сервера:
MaxUser=10
Password=source
PortBase=8000
LogFile=default.log
RealTime=1
ScreenLog=1
ShowLastSongs=20
W3CEnable=no
SrcIP= 127.0.0.1
DestIP=any
NameLookups=0
AdminPassword=root
AutoDumpUsers=0
AutoDumpSourceTime=10
PublicServer=never
AllowRelay=yes
MetaIn terval=10240
BanFile=ban.list
RipFile=rip.list
RIPOnly=no
Теперь расскажу об использовании веб-интерфейса администратора.
Вэб-интерфейс позволяет отключать, банить и резервировать адреса пользователей, просматривать логи сервера и т.п. Набираете в любом браузере
в адресной строке "localhost:порт". Откроется страница "Status"с информацией о текущем состоянии сервера. На странице "Song History"
отображаются названия последних воспроизведённых треков. Чтобы зайти в интерфейс администра жмите ссылку "Admin Login". Имя пользователя -
admin, пароль тот, который указан в конфигурационном файле (см. директивы Password и AdminPassword). На странице “Listeners and Status”
(слушатели и состояние сервера) - отображаются адреса пользователей, которые подключены в данный момент к серверу, а так же информация о
сервере. Каждого пользователя можно отключить (kick), запретить ему соединение (ban) или зарезервировать (reserve). На странице “Tail
logfile“ отображается лог последней сессии сервера, а на странице “Viewlogfile“ отображается весь лог работы сервера.
Настройка источника потока.
Источник потока представляет собой плагин (модуль расширения) к популярному плееру WinAmp. Плагин имеет удобный графический интерфейс
пользователя в котором легко разобраться. Откройте винамп и нажмите Ctrl+P -откроется окно настроек, перейдите в нём на вкладку Plugins
-> DSP/Effect. В правой части окна должен быть пункт Nullsoft SHOUTcast Source DSP - щелкните по нему левой кнопкой мыши один раз
- появиться окно плагина. Окно плагина состоит из четырёх вкладок - Main (главное), Output (выходной поток), Encoder (настройки кодирования),
Input (входной поток). На вкладке Main отображается информация о текущих соединениях и уровне сигнала. На вкладке Output настраиваются
параметры соединения. На вкладке Encoder указываются тип кодека сигнала и битрейт потока. На вкладке Input указывается источник звукового
сигнала, его уровень и др.
Перейдите на вкладку Output. Нажмите кнопку Connection (соединение).
Отобразяться настройки соединения. В поле address введите 127.0.0.1 или localhost, в поле port введите номер порта, через который
работает сервер, в поле password введите пароль на подключение источника. В выпадающем списке encoder выберите номер установок кодирования.
Поставьте галочку на параметр Connect at startup (соединяться при запуске), если хотите, чтобы источник подключался к серверу при
запуске плагина. Можете отметить галочкой пункт Automatic reconnection on connection failure (автоматически переподключаться при ошибке
соединения), если хотите чтобы источник автоматически переподключался к серверу при потере соединения. Нажмите кнопку Yellowpages. Здесь
вы можете указать название потока, жанр, адрес url, icq и название irc-канала. Поставьте галочку напротив Enable Title Update (включить
обновление названия), чтобы название потока автоматически обновлялось.
Снимите галочку с пункта Make this server public (сделать этот сервер публичным), тогда сервер не будет публиковаться на сайте yp.shoutcast.com. Перейдите на вкладку Encoder для того, чтобы настроить параметры перекодирования. Доступны следующие варианты кодирования:
*mp3-формат -самый распротсранённый формат, распознается всеми версиями Winamp'а, можно задать битрейт (от 24 до 320 килобит в
секунду), частоту дискретизации (22,05 или 44,1 килогерц) и режим звука (стерео или моно).
*aac+-формат -поддерживается Winamp'ом версии 5.04 и выше, доступны две версии, настроить можно теже параметры, что и в mp3кодеке.
Отличия: битрейт - от 8 до 128 килобит в секунду; частота дискретизации - 32 или 44 килогерц; режим звука - моно, стерео, стерео с
независимыми каналами и двухканальное стерео. Соотношение с битрейтом mp3 такое: 48 kbps aac+ = 128 kbps mp3. При использовании этого кодека при прослушивании могут появляться хрипы и свист.
Плагин поддерживает 5 предустановок соединений и 5 предустановок кодирования потока, что позволяет мгновенно переходить от одной конфигурации к другой. Существует возможность работать одновременно с пятью потоковыми серверами (вариант для извращенцев).
Плагин позволяет использовать в качестве источника сигнала как сам Winamp так и линейный или микрофонный входы звуковой карты. Так
же плагин имеет простенький микшер. Если вы выбрали в качестве источника вход звуковой карты, то откроются настройки уровня сигнала. Music
Level - обычный уровень сигнала, BG Music Level - уровень сигнала в фоновом режиме, Mic Level - уровень сигнала с микрофона, Fade Time -
время в милисекундах, за которое сигнал изменяется с уровня Musi Level на BG Music Level (и наоборот). Нажмите и держите кнопку Push to talk
для того, чтобы сказать что-нибудь в прямом эфире.
Настройка адсл-модема.
Чтобы обеспечить подключение пользователей к потоковому серверу необходимо настроить перенаправление портов в модеме, на жаргоне этот
процесс называется проброской/прокидкой портов. В разных модемах это делается по разному. Я опишу проброс портов для модемов Huawei и
Acorp.
Настройка Huawei.
Зайдите в вэб-интерфейс модема и перейдите на страницу NAT. Перед вами отобразятся настройка службы трансляции сетевых адресов - нажмите
кнопку Port Mapping Set и вы попадёте на страницу настройки сервера NAT. В строке 2 введи в поля Start Port No и End Port No номер порта,
на котором работает ваш потоковый сервер, а в поле IP Address введите 192.168.1.2. Нажмите Save и Apply. Для окончательного сохранения
настроек зайдите на страницу Restart, выберите Current Settings и нажмите Restart.
Настройка Acorp.
Зайдите в вэб-интерфейс модема и перейдите на страницу Port Forwarding. Переключите флажок на строку User, чтобы отобразить пользовательские
правила. Нажмите кнопку New. Откроется окно редактирования правил перенаправления. В поле Rule Name введите название правила
(любое), в выпадающем списке Protocol выберите TCP, в поля Port Start, Port End и Port Map введи номер порта, через который работает ваш
потоковый сервер. Нажмите кнопку Apply. Снова перейдите на страницу Port Forwarding, перейдите на список пользовательских правил, выберите
своё правило и нажмите кнопку Add (добавить), чтобы включить работу правила. Нажмите кнопку Apply. Перейдите на страницу Tools -> System
Commands и нажмите кнопку Save all, чтобы сохранить настройки.
Настройка файерволла Outpost.
Откройте окно Параметры... и перейдите на вкладку Приложения.
Нажмите кнопку Добавить и откройте файл сервера шоуткаст sc_serv.exe.
Затем откроется окно редактирования правил для приложения. Нажмите кнопку Создать.., чтобы создать новое правило.
Описание правила:
протокол -TCP
направление -входящее
удалённый адрес -10.250.0.0(255.255.0.0), 212.12.0.0(255.255.224.0)
локальный порт -номер порта, через который работает потоковый
сервер
действие -разрешить эти данные.