IceCast


Попробуем разобраться, как настроить IceCast.
# icecast
usage: icecast [-h -b -v] -c < file >
options:
-c < file > Specify configuration file
-h Display usage
-v Display version info
-b Run icecast in the background

Надо указать конфигурационный файл. Пример конфигурационного файла в XML формате, поставляемого с IceCast – icecast_minimal.in.

Его подробное описание с пояснениями по ходу дела.

< icecast >
< limits >

Секция ограничений.

< clients >50< /clients >

Количество одновременно подключенных пользователей. Выставляем желаемое.

< sources >1< /sources >

Количество обрабатываемых сервером аудиопотоков. Если надо организовать несколько разных потоков аудио.

< threadpool >5< /threadpool >

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

< queue-size >102400< /queue-size >


Максимальный размер (в байтах) очереди для клиентов, подключенных к нашему серверу. Оставляем значение по умолчанию.

< header-timeout >15< /header-timeout >

Максимальное время ожидания в секундах для запросов от клиентов. Оставляю без изменений.

< source-timeout >10< /source-timeout >

Если подключенный к серверу аудиопоток не посылает данные 10 секунд, этот аудиопоток удаляется. Оставляем как есть.

< /limits >
< authentication >

Аутентификация - следующая секция конфигурационного файла. В ней описывается, как аудиопотоки должны авторизовываться на сервере и как администратор может управлять ими.

< source-password >mypass< /source-password >

Пароль для присоединения потока к аудиосерверу IceCast.

< relay-password >mypass< /relay-password >

Пароль, используемый для пересылки аудиопотоков между локальным IceCast-сервером и другим IceCast-сервером. Эти пароли на обоих серверах должны совпадать.

< admin-user >admin< /admin-user >

Логин администратора, обслуживающего сервер.
По умолчанию admin.

< admin-password >nopass< /admin-password >

Пароль администратора. Используется для всех административных функций.

< /authentication >

Далее следуют все остальные настройки сервера.

< hostname >192.168.1.11< /hostname >

Здесь все просто – имя машины (Fully Qualified Domain Name или IP-адрес).
В моей сети используется 192.168.1.11.
В вашей сети настройки, конечно, будут другими.

< listen-socket >
< port >8000< /port >

Настройка номера TCP-порта. Значение по умолчанию 8000.

< bind-address >192.168.1.11< /bind-address >

Привязка к сетевому адресу. Если параметр не указан, используется значение hostname. Поставим для страховки 192.168.1.11.

< /listen-socket >
< mount >

В этой секции меня заинтересовали некоторые параметры, которые придают нашему серверу профессиональный вид.
Здесь задаются специальные параметры для точек монтирования. Пока точка монтирования у нас одна – она описывается далее в файле настроек Ices.

< mount-name >/paradiselost.ogg< /mount-name >

Имя точки монтирования.

< username >source< /username >

Имя пользователя – оставляем source.

< password >mypass< /password >

Пароль – в моем случае mypass.

< intro >/intro.ogg< /intro >

Интересный параметр, в котором следует указать имя файла, который должен быть помещен в каталог webroot - в моем случае это каталог /home/icecastwebroot.
Этот файл будет проигрываться всем новым пользователям, которые подключаются к нашему аудиосерверу.
В этот файл я записал свое приветствие слушателям.

< fallback-mount >/fall.ogg< /fallback-mount >

В этом параметре также указывается имя файла, который должен находиться в каталоге webroot.
Этот файл будет проигран клиентам в том случае, если что-то пошло не так и нормальный аудиопоток недоступен.

< /mount >
< paths >

Секция «Пути».


< logdir >/var/log/icecast< /logdir >

Каталог для записи логов (всегда есть куда глянуть, если что-то пойдет не так).

< webroot >/home/icecastwebroot< /webroot >

В этой директиве определяется базовый каталог для статических файлов. Этот каталог может содержать любые файлы.
Допустим, мы указали в этой директиве /home/icecaswebroot.
Если теперь в строке браузера указать http://192.168.1.11:8000/mp3/muzik.mp3, то на компьютер клиента будет загружен файл /home/icecastwebroot/mp3/muzik.mp3.

< adminroot >/home/icecastwebroot/admin< /adminroot >

В этой директиве указывается каталог для инструментов администрирования.
При инсталляции IceCast устанавливается ряд скриптов в формате XSL для администрирования сервера через веб.
Если поместить эти скрипты (в моем случае) в /home/icecastwebroot/admin, то в панель веб-администрирования можно будет попасть, набрав в строке браузераhttp://192.168.1.11:8000/admin/.

< pidfile >/usr/local/share/icecast/icecast.pid< /pidfile >

В этой строке задается имя и путь к так называемому pid-файлу, который создается при старте и удаляется при завершении работы сервера.
Файл содержит process ID сервера, который используется для посылки сигналов серверу.

< /paths >
< logging >


Секция мониторинга.

< accesslog >access.log< /accesslog >

Лог доступа с серверу.

< errorlog >error.log< /errorlog >

Лог ошибок.

< playlistlog >playlist.log< /playlistlog >

Лог проигрываемых аудиофайлов.

< loglevel >4< /loglevel >

Что будет записываться в логи. От 4 - максимум отладочной информации - и до 1 – только ошибки.

< /logging >
< security >

Секция «безопасность».

< chroot >0< /chroot >

Указывает, будет ли использоваться chroot(). Директория, в которую делается chroot, указывается в директиве < basedir >.

< changeowner >
< user >kost< /user >
< group >kost< /group >
< /changeowner >

Эта директива указывает серверу от чьего имени и группы стартовать. Следует указывать реально существующих пользователей.

< /security >
< /icecast >

Записываем этот файл в свой каталог под именем config. Ну вроде все! Можно попробовать стартовать сервер следующей командой:

#icecast -c /home/config -b
Starting icecast2
Detaching from the console
# Changed groupid to 1000.
Changed userid to 1000.

Опция -b заставляет сервер запуститься в фоновом режиме.
Внимательно просмотрите файл на предмет наличия незакрытых тегов, иначе IceCast стартовать не захочет.

введя в строку браузера http://192.168.1.11:8000/admin/,мы можем попасть в административный интерфейс.

< relay >
< server >205.188.215.226< /server >
< port >8000< /port >
< mount >/< /mount >
< local-mount >/stream.ogg < /local-mount >
< relay-shoutcast-metadata >1< /relay-shoutcast-metadata >
< relays-on-demand >1< /relays-on-demand >
< master-update-interval >120< /master-update-interval >
< /relay >